jQuery插件.fn问题
我似乎在创建一个jquery插件时遇到了一些问题。 我在firebug控制台中测试一个简单的插件,并且没有像我期望的那样定义该函数。 这是我正在使用的代码模式
jQuery.fn.test = function () {console.log("runs")}
我试图用这个不起作用的调用来调用该函数。
$.test()
但是这个电话呢
$.fn.test()
我不认为这是应该如何工作所以我认为我做错了,虽然所有文件似乎都同意我应该是正确的。 有人有什么建议吗?
谢谢,科里
试试$('div').test()
!
给http://docs.jquery.com/Plugins/Authoring一个阅读,以获得对jQuery插件的一个很好的介绍。
好的,这里有一些额外的信息,而我在这里。 在创建插件时,有三个接近绝对的规则:
- 在定义插件时始终使用匿名方法,以确保使用
$
获取jQuery对象。 - 总是尝试再次返回jQuery对象(用于链接)。
- 始终迭代元素,因为您的选择器可能匹配多个元素。
所以为了惯例,请从这样开始:
(function($) { $.fn.test = function() { return this.each(function() { console.log("runs"); }); } })(jQuery);
这将为您的选择器匹配的每个项目打印“运行”(如果您只使用div
则会很多)。 尝试把$(this).css('background-color', 'red');
进去看看会发生什么。
另一个好看的地方是各种社交编码网站( GitHub , BitBucket , Google Code等),并搜索“jQuery插件”以了解其他人如何做到这一点。
扩展jQuery有两种方法。 你选择的那个允许这样的事情:
$("div").test();
虽然代码的格式不正确。 只需添加静态方法即可调用:
$.test();
做这个:
jQuery.test = function() { ... };
请参阅插件/编写 。