4

我是 jQuery 插件开发的新手,我很想知道下面列出的两种方式之间有什么区别?这样做的正确方法是什么?

(function($){
  $.myplugin = {
    // plugin code
  };
})(jQuery);

第二个:

(function($){
  $.fn.myPlugin = function() {
    // plugin code 
  };
})(jQuery);
4

2 回答 2

8

第一个向 jQuery 添加了一个实用函数,称为$.myplugin(...).

第二个添加了一个作用于 jQuery对象的插件,它被称为$(selector).myPlugin(...)

如果您正在开发一个作用于元素的插件,并且可以是 jQuery 风格的函数调用“链”的一部分,请选择后者。

于 2012-05-16T08:03:26.917 回答
2

$.fn 指向 jQuery.prototype。您添加到其中的任何方法或属性都可用于 jQuery 包装对象的所有实例。

$.something 将属性或函数添加到 jQuery 对象本身。

当您处理页面上的 DOM 元素时,使用第一种形式 $.fn.something,并且您的插件会对元素执行某些操作。当插件与 DOM 元素无关时,使用另一种形式 $.something

类似的问题:-)

于 2012-05-16T08:07:23.983 回答