我想创建一个插件,它可以处理普通对象 - 我可以使用每个插件进行迭代。因此,我希望可以通过jQuery的全局对象访问,如$ .myPluginFn()。
(function($) { $.fn.test = function() { return 1; } })(jQuery)
执行$ j.test()会出错:
TypeError: Object function (a,b){return new d.fn.init(a,b,g)} has no method 'test'
我做错了什么?另一方面,分配给$ .fn.myPluginFn也起作用。
答案 0 :(得分:2)
如果我理解正确并且您希望jQuery.test()
能够正常工作,那么您应该使用:
$.test = ...
而不是
$.fn.test = ...
如果您希望jQuery(selector).test()
能够工作,那么您可以使用后者。
答案 1 :(得分:1)
.fn.foo
函数为每个jQuery对象提供了一个foo函数。因此,如果您创建一个,可以这样称呼它:$("#id_of_item").foo();
如果你想操纵物品,这很有用。
但是如果你想创建其他函数,你不需要放入jquery对象。