jQuery 插件创作 : Why do some do jQuery. pluginName 和其他 jQuery.fn.pluginName?

标签 jquery plugins

例如,我正在查看 jCalendar 源代码,创建者有该插件的两个不同部分,一个是“jQuery.jcalendar”下的函数,另一个是“jQuery.fn.jcalendar”下的函数。两人分开的目的是什么?其中一个比另一个做什么?

最佳答案

jQuery.fn.mypluging 名称扩展了 jQuery 对象:

$(selector); //a jquery object
$(selector).myplugin();

jQuery.myplugin 扩展了 jquery 对象本身:

$; //the jQuery object
$.myPlugin();

通过将插件添加到 jQuery.fn,您可以对该选择器找到的对象执行一些操作:

jQuery.fn.makeRed = function(){
 this.each( function() {
  $(this).css('color', 'red');
 }
}

$('div.someClass').makeRed(); //makes all divs of class someclass have red text

扩展 jQuery 对象本身通常是为了类需要但不扩展 jQuery 对象的函数。因此,扩展我们之前的示例:

jQuery.fn.doStuff = function(){
 this.each( function() {
  $(this).css('color', 'red')
         .append($.doStuff.giveMeRandom());
 }
}

jQuery.doStuff = {
 giveMeRandom: function() {
  return Math.random();
 }
}

$('div.someClass').doStuff(); //makes all divs of class someclass have red text and append a random number to them

关于jQuery 插件创作 : Why do some do jQuery. pluginName 和其他 jQuery.fn.pluginName?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/538043/

相关文章:

javascript - 高级兄弟选择器

javascript - 如何使用 jQuery find 从整页 HTML 字符串中提取内容

javascript - 用逗号和小数格式化金额字段

cordova - Phonegap 2.3.0 和 ForegroundCamera 插件

objective-c - NPAPI 插件 - Mac OS - 打开多个模式对话框时,[NSAlert runModal] 在 Firefox 上无法正常工作

javascript - 链接到多个选择值的 Jquery div

c - 向 C 程序添加插件

gradle - 谷歌构建Android的Gradle插件源代码

javascript - ionic/cordova 无法创建插件

C# ASP.NET 如何通过代码隐藏修改 CSS 类