我希望方法链工作,但似乎我没有得到一些概念。
此:
$(".list").activeJS()
首先必须使用jQuery来获取HTMLElement节点列表,然后它必须调用传递节点列表的activeJS()函数。
var activeJS = function(item){
alert(item) //nodelist
}
现在我得到一个TypeError:$(...)。activeJS在我的控制台中不是函数错误。
THX,
答案 0 :(得分:1)
如果要创建一个可从jQuery对象调用的函数,则必须将其添加到jQuery原型对象中:
jQuery.fn.activeJS = function(item) {
// ... whatever
};
答案 1 :(得分:1)
当一个函数添加到jQuery(允许链接)时,它被称为插件,必须考虑几个方面。例如,您的功能本身是否可链接?您的函数是在单个元素还是多个元素上工作?我建议您研究jQuery插件并在jQuery中将您的函数构建为插件。
这是一个关于构建jQuery插件的excellent tutorial,它涵盖了链接,传递属性和调用不同插件函数等概念。看一下这篇文章,确定你的函数是否真的需要成为一个插件。
将jQuery
和所选元素作为参数传递给函数而不是链接可能更好。
答案 2 :(得分:1)
看一下这个例子:
var obj = {
fn: function(){
console.log("fn method");
return this;
},
abc: function(){
console.log("abc method");
return this;
},
oneMore: function(){
console.log("one more method");
return this;
}
};
此处通过返回对 obj 对象的引用来提供链接。 简单地说,每次在该对象上调用方法时,都会返回该对象 - 您可以继续调用其方法。这是你可以在jQuery中找到的基本链接模式 - 稍加修改但想法是一样的。由于javascript的动态特性,我们可以做这种事情。链接允许耦合由公共对象连接的相关方法。这种模式源于函数式编程,javascript受功能语言(主要是方案)的影响很大。 但是太多的链接会导致代码难以理解,就像许多jQuery示例中所见。