在jQuery插件中添加附加功能
Adding additional functions within a jQuery plugin
我开始在自己的命名空间中编写更多的jQuery插件,这样我就可以重用代码并保持代码干燥。
我是整个插件创作的新手,但阅读了一些来源,包括官方的jQuery。
这是我发现的一个我正在玩的例子:
(function($) {
// jQuery plugin definition
$.fn.reverseText = function(params) {
$.fn.reverseText.test();
// merge default and user parameters
params = $.extend({
minlength: 0,
maxlength: 99999
}, params);
// traverse all nodes
this.each(function() {
console.log($(this).parent().data('url'));
// express a single node as a jQuery object
var $t = $(this);
// find text
var origText = $t.text(),
newText = '';
// text length within defined limits?
if (origText.length >= params.minlength && origText.length <= params.maxlength) {
// reverse text
for (var i = origText.length - 1; i >= 0; i--) newText += origText.substr(i, 1);
$t.text(newText);
}
});
// allow jQuery chaining
return this.each;
};
// Is this correct?
$.fn.reverseText.test = function() {
alert('test');
};
})(jQuery);
$(function() {
$(".js-test-whatever li:even").reverseText();
});
一般来说,我会创建一个这样的名称空间:
var a = {
};
a.reverseText = {
init: function () {
reverseText();
});
},
reverse: function() {
$(function() {
return foo;
});
}
a.reverseText.init();
那么,在jQuery插件名称空间中添加多个函数的正确方法是什么呢?
请看第一个示例中的注释,其中我包含了一个附加函数。
这是一种可以接受的方法。另一种方法可能是这样的:
(function($) {
var reverse = {
test: function () {
alert('test');
},
fn: function(params) {
reverse.test();
/* the rest of your plugin code */
}
}
// jQuery plugin definition
$.fn.reverseText = reverse.fn
})(jQuery);
没有一种"正确"的方式。只需使用对您当前正在进行的项目最有效的方法即可。
相关文章:
- 将控制器的功能添加到角度中的特定视图
- 如何将工具提示功能添加到高级图表中的 X 轴标签
- 如何将左/右箭头(下一个/上一个)功能添加到我的 jQuery 图像和文本滑块
- 将缩放功能添加到 jquery 宝丽来图库
- 将本地搜索功能添加到传单 JS 库
- 尝试将促销代码功能添加到折扣号码
- 无法将热键功能添加到firefox插件中
- 为与CSS3动画完成相关的功能添加回退
- 如何将标准API功能添加到jQuery插件中
- Rest.next()?我的点击功能添加'.活动'两次
- 向OpenLayers 3中的功能添加事件处理程序
- 将自定义功能添加到chrome's控制台
- 当我将鼠标悬停在通过按钮功能添加的表行上时,如何更改列中的图像
- 为分页导航功能添加延迟
- 另外,使用Javascript功能添加多个文本框
- JS位置加载后的功能-添加延迟时间
- 希望将展开和折叠功能添加到作为父节点的动态生成的文件中
- 未捕获的类型错误:无法读取属性'作者'在尝试将编辑功能添加到注释框时,为undefined
- 如何将 jquery 自动完成 UI 功能添加到表中的每个单元格
- 将滑动功能添加到响应页面的现有侧边菜单中