1 0

为什么jquery插件要这么写?5

(function($){
$.fn.hoverElement=function(){
    ...
};
})(jQuery);
为什么function前有个小括号?
为什么最后有个(jQuery),是在是没明白,哪位帮忙解释一下
 
2012年12月26日 15:36

7个答案 按时间排序 按投票排序

2 0

(function($){ 
  $.fn.hoverElement=function(){ 
    ... 
  }; 
})(jQuery); 


解释:
首先
function($){ 
  $.fn.hoverElement=function(){ 
    ... 
  }; 
}

是定义了一个匿名方法,这个方法用小括号包围起来就可以做为一个方法对象来调用,后边的小括号是对方法的调用,类似于fun(jQuery);
jQuery是jquery的主体对象,正常情况下与$是等价的,但个别情况下$与jQuery不等价(调用jQuery.noConflict();),所以要将jQuery做为参数传到刚才定义的方法中,刚才定义的方法中有一个参数$,此时在方法内部就可以使用$来引用jQuery,就不用考虑$是与jQuery等价
与以下代码是等价的,只是下边的代码会占用一个fun的变量名:
var fun = function($){ 
  $.fn.hoverElement=function(){ 
    ... 
  }; 
};
fun(jQuery);


下边再给你解释一下$.fn.hoverElement=function(){
    ...
};
在jquery中,$是一个模板类,调用jquery选择器后返回的就是$的一个实例对实例调用方法时只能使用$原型中的方法,$.fn=$.prototype,它是指jquery的原型,加上fn上的方法及属性,相当于对$的原型增加方法和属性,这样会对$的每一个实例都有效。

2012年12月26日 16:44
0 0

(function($){  
  $.fn.hoverElement=function(){  
    ...  
  };  
})(jQuery);

jQuery.fn.hoverElement=function(){  
    ... //里面所有的$全部改写成jQuery 
};
效果是一样的。

为什么不直接写成
$.fn.hoverElement=function(){  
    ... //里面所有的$全部用$
};
呢?因为如果jQuery与其它js库同时使用,可能两个库都定义了$,就冲突了,具体可以看jQuery.noConflict()的文档。

2012年12月27日 10:36
0 0

    //定义一个匿名函数并且调用一次这个函数
   (
      //定义一个匿名函数
      function(参数列表){
         //匿名函数的函数体
      }
    )(实际参列表)


这实际上Javascript的标准语法--定义一个匿名函数并调用一次这个函数,楼主贴出的代码相当于:

  var fun = function($){ 
     $.fn.hoverElement=function(){ 
        // ... 
     }; 
  }
  fun(jQuery);

2012年12月26日 23:15
0 0

(function(){})();

前一个小括号表示匿名函数,后一对小括号表示执行这个函数。
也可以使用参数的, 像这样:
(function(n){alert(n);}(100);

结果会显示:100

为什么这么写呢?匿名函数可以防止作用域的污染
比如:
var name = 'world';
alert('hello ' + name);

这样的写法会定义全局变量:name
使用匿名函数就避免了这个问题:
(function(){
  var name = 'world';
  alert('hello ' + name);
})();

2012年12月26日 17:54
0 0

jquery 写法很多种
$(function() {
    // 从这里开始
});

jQuery(function($){

});

$(function(){

})

2012年12月26日 16:12
0 1

开发过jQuery

2012年12月26日 22:54
0 1

没有见过开发jQuery,飘过啊·····

2012年12月26日 15:58

相关推荐

    jQuery插件jQuery插件

    jQuery插件jQuery插件jQuery插件jQuery插件jQuery插件jQuery插件jQuery插件jQuery插件jQuery插件jQuery插件jQuery插件jQuery插件jQuery插件

    jquery插件库(jquery.treeview插件库)

    jquery插件库(jquery.treeview插件库)jquery插件库(jquery.treeview插件库)jquery插件库(jquery.treeview插件库)jquery插件库(jquery.treeview插件库)jquery插件库(jquery.treeview插件库)jquery插件库(jquery....

    jquery 插件jquery 插件jquery 插件jquery 插件

    jQuery插件是jQuery库的扩展,它为开发者提供了丰富的功能,使得JavaScript编程更为简便和高效。jQuery本身提供了基础的DOM操作、事件处理、动画效果以及Ajax交互等核心功能,但为了满足更复杂的需求,开发者们创建...

    orgchart.js 组织架构图之JQuery插件

    组织架构图之JQuery插件组织架构图之JQuery插件组织架构图之JQuery插件组织架构图之JQuery插件组织架构图之JQuery插件组织架构图之JQuery插件组织架构图之JQuery插件组织架构图之JQuery插件组织架构图之JQuery插件...

    jquery插件库大全(200个).zip

    jquery插件库大全(200个): jqueryQQ表情插件 jquery下拉菜单导航 jquery下拉菜单栏 jquery仿Windows系统选中图标效果 jquery仿京东商品详情页图片放大效果 jquery仿百度新闻焦点轮播 jquery分离布局模版 jquery...

    jQuery插件,jQuery插件

    jQuery插件是JavaScript库jQuery生态系统中的一个重要组成部分,它极大地扩展了jQuery的核心功能,为开发者提供了丰富的功能和便捷的API,以实现各种复杂的网页交互和特效。jQuery插件通常由开发者社区创建并开源,...

    sublime2 jquery插件

    总之,Sublime Text 2的jQuery插件不仅提供了美观的语法高亮,还可能包含代码提示、自动完成等实用功能,为前端开发者带来了极大的便利。同时,结合源码仓库,你还可以深入学习和理解jQuery的内部工作原理。充分利用...

    好用清除html的jquery插件

    总结来说,这个“好用清除html的jquery插件”提供了一种高效的方法来处理和展示HTML内容,它可以帮助开发者确保内容的安全性和一致性,同时也为学习jQuery插件开发提供了实践案例。通过对插件源代码的研究,你可以...

    JQuery插件的写法 最常用的jquery插件开发方式(教程合集).zip

    JQuery插件的写法 最常用的jquery插件开发方式(教程合集) jquery插件的例子 jQuery插件开发教程_看这一本就行了 JQuery插件写法 jq插件最常用的写法

    50个jquery插件介绍

    "50个jQuery插件介绍"这篇文档很可能包含了对各种功能强大、用途广泛的jQuery插件的详细解读,帮助开发者提升网站的用户体验和功能实现。 首先,jQuery插件是jQuery库的扩展,由社区开发者创建,用于解决特定问题或...

    jquery插件

    2. **多媒体播放**:jQuery插件如`jQuery.media`和`jPlayer`提供了优雅的方式来处理视频和音频播放,支持多种格式,提供自定义的播放器皮肤和控制选项,使开发者能够创建互动性强的多媒体体验。 3. **DOM操作和事件...

    Ddreamweaver的jquery插件

    Ddreamweaver jquery 插件 Ddreamweaver jquery 插件Ddreamweaver jquery 插件 Ddreamweaver jquery 插件 Ddreamweaver jquery 插件 Ddreamweaver jquery 插件 Ddreamweaver jquery 插件

    jquery插件特效WORD版

    资源名称:jquery插件特效 WORD版内容简介:本文档主要讲述的是jquery插件特效;jQuery 是继 prototype 之后又一个优秀的 Javascript 框架。其宗旨是—写更少的代码,做更多的事情。jQuery 是一个快速的,简洁...

    JQuery插件

    JQuery插件是JavaScript库JQuery生态中的一个重要组成部分,它扩展了JQuery的基本功能,为开发者提供了更加丰富和便捷的API来实现各种复杂的交互效果和动画。在网页开发中,JQuery插件广泛应用于增强用户体验、创建...

    很好用的Jquery插件

    本文将深入探讨“很好用的Jquery插件”,并介绍几个常用插件及其简单使用方法,这对于在项目中提升用户体验具有显著帮助。 首先,jQuery库的核心优势在于它的API设计,它提供了丰富的选择器、DOM操作、事件处理和...

    jquery插件库-jquery仿京东商品详情页图片放大效果.zip

    "jquery插件库-jquery仿京东商品详情页图片放大效果.zip"这个压缩包文件包含了一个jQuery插件,旨在模仿京东商品详情页中的图片放大效果,为用户提供更直观的商品查看体验。 首先,我们来详细了解一下jQuery插件的...

    jQuery打印插件jqprint,内包含使用示例

    jQuery打印插件jqprint,jquery.jqprint-0.3.js 下载,内包含使用示例,下载解压可直接在浏览器打开使用。 jQuery打印插件jqprint,jquery.jqprint-0.3.js 下载,内包含使用示例,下载解压可直接在浏览器打开使用。 ...

    eclipse上支持jquery插件

    标题“eclipse上支持jquery插件”所指的就是这种能够为Eclipse添加jQuery智能提示和代码辅助功能的扩展。这样的插件使得开发者在编写jQuery代码时,可以享受到如同使用Java或其他语言一样的代码补全、错误检查和调试...

Global site tag (gtag.js) - Google Analytics