我似乎在创建jquery插件时遇到了一些问题。我在firebug控制台中测试一个简单的插件,并且没有像我期望的那样定义该函数。这是我正在使用的代码模式
jQuery.fn.test = function () {console.log("runs")}
我正在尝试使用此调用无效的函数调用该函数。
$.test()
但是这个电话确实
$.fn.test()
我不认为这是应该如何工作所以我认为我做错了什么,虽然所有文件似乎都同意我应该是正确的。有人有什么建议吗?
谢谢, 科里
答案 0 :(得分:3)
试试$('div').test()
!
给http://docs.jquery.com/Plugins/Authoring一个阅读,以便对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插件”以了解其他人是如何做到的
答案 1 :(得分:1)
有两种扩展jQuery的方法。你选择的那个允许这样的事情:
$("div").test();
虽然代码的格式不正确。只需添加静态方法即可调用:
$.test();
这样做:
jQuery.test = function() {
...
};