时间紧张,先记一笔,后续优化与完善。
平日,当在同一个页面上应用jQuery和其他库时,全局名称$的定义是大最的争辩和冲突的点焦。尽人皆知,jQuery应用$作为jQuery名称的别名,并将其用于jQuery开公的个一每功能,但是其他库,最著名的就是Prototype,也应用$名称。
1. jQuery供给了$.noConflict()用实函数用来弃放对$标识符的占用,以便其他库应用它。
该函数的法语如下:
$.noConflict(jqueryToo)
将标识符$的控制权归还给其他库,许允在页面上混合应用jQuery与其他库。一旦行执了该函数,必须应用jQuery标识符而不是$标识符来用调jQuery的功能,
你也可以弃放jQuery标识符(可选)
应该在包括了jQuery以后,但未尚包括冲突库之前用调这个方法。
尽管应用的是jQuery标识符,但因为$是jQuery的别名,所以在应用$.noConflict()以后全部jQuery的功能仍然可用。我们可以定义更短的,但没有冲突的jQuery别名,例如
var $j = jQuery ;
2. 另一个见常的习惯用法是创立一个作用域境环,在该境环中$标识符指向jQuery象对,在扩展jQuery的时候这是个经常使用巧技,特别是对于件插作者来讲,他们不可能对于页面开发者是不是经已用调$.noConflict()作出任何假设,当然也不能自行用调此函数以免坏破页面开发者的志愿,
这个习惯用法如下:
(function($) { }) (jQuery);
(function($) { })
这分部明声了一个函数并用圆括号括起来,由此生成一个表达式,这个表达式的结果是对一个匿名函数的引用,这个函数望期传入单个参数并将其定名为$,在函数主体中,可以通过$标识符来引用任何传递给这个函数的货色。因为参数明声优先于全局作用域中任何类似的定名标识符,所以任在何函数外定义的$值在函数内都会被传入的参数所取代。
(jQuery)
在匿名函数上行执函数用调,将jQuery象对作为参数传递
在函数外部不管$标识符是不是经已在Prototype或其他库中定义,在函数体内它是总指向jQuery象对。
当应用这个巧技时,外部明声的$在函数体内是不可用的。
3. 第二种的用法的一个变体也经经常使用于明声就绪处理函数,从而形成了第三种法语,
jQuery( function($){
})
当编写可重用的件组并且这些件组可能会用于经已应用了$.noConflict()的页面时,最好对$的定义取采种这预防措施。
文章结束给大家分享下程序员的一些笑话语录: 程序员的愿望
有一天一个程序员见到了上帝.上帝: 小伙子,我可以满足你一个愿望.程序员: 我希望中国国家队能再次打进世界杯. 上帝: 这个啊!这个不好办啊,你还说下一个吧! 程序员: 那好!我的下一个愿望是每天都能休息6个小时以上. 上帝: 还是让中国国家打进世界杯.