jQuery noConflict() 方法



如果你想使用其他框架的页面,同时仍然使用jQuery?


jQuery和其他JavaScript框架

你已经知道; jQuery使用$符号作为jQuery的简写.

还有许多其他流行的JavaScript框架如: Angular, Backbone, Ember, Knockout等等.

如果其他JavaScript框架也使用 $ 符号作为简写呢?

如果两个不同的框架使用相同的快捷方式,其中一个可能会停止工作.

jQuery团队已经思考过这个问题,并实现了 noConflict() 方法.


jQuery noConflict() 方法

noConflict() 方法放弃持有 $ 快捷标识符, 因此其他脚本可以使用它.

你当然可以使用jQuery,使用jQuery全称代替简写:

$.noConflict();
jQuery(document).ready(function(){
    jQuery("button").click(function(){
        jQuery("p").text("jQuery is still working!");
    });
});

让我试试

您也可以创建自己的快捷方式很容易. noConflict() 方法返回jQuery引用, 您可以保存在一个变量里面, 以后使用. 这里有一个例子:

var jq = $.noConflict();
jq(document).ready(function(){
    jq("button").click(function(){
        jq("p").text("jQuery is still working!");
    });
});

让我试试

如果你有一个jQuery代码块使用$快捷键并且你不想改变它, 你可以为ready方法传递一个$参数.在允许你使用$访问, 在函数内部 - 而在外部, 你必须使用 "jQuery":

$.noConflict();
jQuery(document).ready(function($){
    $("button").click(function(){
        $("p").text("jQuery is still working!");
    });
});

让我试试