函数标识符解决jQuery与其他库冲突的方法

时间紧张,先记一笔,后续优化与完善。

    

    平日,当在同一个页面上应用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个小时以上.
  上帝: 还是让中国国家打进世界杯.

posted @ 2013-05-09 20:24  坚固66  阅读(256)  评论(0编辑  收藏  举报