Javascript 如何使我的函数被$(..).name()调用?
我已经创建了一个名为Javascript 如何使我的函数被$(..).name()调用?,javascript,jquery,Javascript,Jquery,我已经创建了一个名为draw()的js函数,现在是否可以在使用$(…)获取元素后,使用操作符调用此方法。我的意思是我喜欢这样做$(#myId).draw()。现在它给出了类似未定义函数的错误。如何使其工作?您必须将其创建为jquery插件。如本文所述 来自jQuery的文档: JSIDLE示例: 很难从你的问题中分辨出来,但听起来你想创建一个jQuery插件。您可以通过扩展$来实现这一点。fn: $.fn.draw = function(){ /* ... */ } 然后您可以对选
draw()
的js函数,现在是否可以在使用$(…)
获取元素后,使用
操作符调用此方法。我的意思是我喜欢这样做$(#myId).draw()
。现在它给出了类似未定义函数的错误。如何使其工作?您必须将其创建为jquery插件。如本文所述
来自jQuery的文档:
JSIDLE示例:
很难从你的问题中分辨出来,但听起来你想创建一个jQuery插件。您可以通过扩展
$来实现这一点。fn
:
$.fn.draw = function(){
/* ... */
}
然后您可以对选择器调用它:
$('#myId').draw();
此处有更多文档:您需要
最好的方法是使用jquery.fn.extend添加方法(因为我们可以一次添加几个插件函数) 示例代码如下所示
jQuery.fn.extend({
draw: function() {
return this.each(function() {
// add code here to draw
});
}
});
添加此方法后,可以使用下面的代码对任何jQuery元素调用draw方法
$("#myId").draw()
官方参考:您想要使用
jQuery.fn.extend
,这里有文档记录
现在您可以在使用
$(…)
创建的jQuery对象上调用.draw
,是否希望像调用jQuery函数一样调用该方法?@RaviH:yes,就像默认方法一样。然后阅读关于如何编写jquery插件并使其成为jquery插件的内容。@WesleyMurch是的,它看起来是重复的,尽管我没有制作任何插件:P。我会将它标记为。操作符
与“调用函数”没有直接关系,但它会影响上下文$(..).draw()
simple尝试调用从jQuery对象的draw
属性返回的函数对象,该属性由$(..)
返回。。在您的情况下,该属性不存在,并生成未定义的
,从而引发异常。如前所述,在本例中实现此功能的正确方法是创建jQuery插件或“扩展”。出于兴趣,是否有任何理由认为fn.extend
优于fn.draw=…
?@Eru jQuery.fn.extend用于扩展jQuery.fn对象,这实际上是一次添加几个插件函数。啊,我明白了,你添加了一个完整的对象。谢谢
jQuery.fn.extend({
draw: function() {
return this.each(function() {
// add code here to draw
});
}
});
$("#myId").draw()
$.fn.extend({
draw: function() {
// do something to the jQuery object
return this;
}
});