jqueryplugin.fn问题

jqueryplugin.fn问题,jquery,jquery-plugins,Jquery,Jquery Plugins,我似乎在创建jquery插件时遇到了一些问题。我正在firebug控制台中测试一个简单的插件,但函数的定义并不像我预期的那样。下面是我正在使用的代码模式 jQuery.fn.test = function () {console.log("runs")} 我正在尝试使用此调用调用函数,但该调用不起作用 $.test() 但这通电话确实如此 $.fn.test() 我不认为这是它应该如何工作,所以我认为我做错了什么,尽管所有的文档似乎都同意我应该是正确的。有人有什么建议吗 谢谢, Cory试

我似乎在创建jquery插件时遇到了一些问题。我正在firebug控制台中测试一个简单的插件,但函数的定义并不像我预期的那样。下面是我正在使用的代码模式

jQuery.fn.test = function () {console.log("runs")}
我正在尝试使用此调用调用函数,但该调用不起作用

$.test()
但这通电话确实如此

$.fn.test()
我不认为这是它应该如何工作,所以我认为我做错了什么,尽管所有的文档似乎都同意我应该是正确的。有人有什么建议吗

谢谢, Cory

试试
$('div')。test()

阅读jQuery插件的详细介绍


好的,我在这里的时候,这里有一些额外的信息。创建插件时,有三条近乎绝对的规则:

  • 定义插件时,请始终使用匿名方法,以确保使用
    $
    获取jQuery对象
  • 始终尝试再次返回jQuery对象(用于链接)
  • 始终迭代元素,因为选择器可能匹配多个元素
因此,出于惯例,从以下几点开始:

(function($) {
  $.fn.test = function() {
    return this.each(function() {
      console.log("runs");
    });
  }
})(jQuery);
这将为选择器匹配的每个项目打印“运行”(如果只使用
div
,则会打印很多)。尝试放置
$(this.css('background-color','red')并查看发生了什么


另一个好地方是各种社交编码网站(,)和搜索“jQuery插件”,看看其他人是如何做的。

扩展jQuery有两种方法。您选择的选项允许以下操作:

$("div").test();
尽管代码的格式不正确。要简单地添加一个静态方法以便调用:

$.test();
这样做:

jQuery.test = function() {
  ...
};

看。

我需要打电话找点事,这很愚蠢,谢谢。