我需要一个转换器来制作任何jquery代码来制作no.conflict模式?

时间:2010-03-12 21:11:39

标签: javascript jquery html xhtml

我需要一个转换器来使用no.conflict模式制作任何jquery代码/插件吗?

或者只有查找和替换才有可能。

2 个答案:

答案 0 :(得分:1)

至于$快捷方式:如果您放置代码,例如在一个精心设计的匿名函数中,您仍然可以使用它。像:

    (function ($, undefined) {

        //Use $ shortcut for jQuery in this scope
        $("input").val("clickme");

    })(jQuery.noConflict());

同样适用于noConflict()的“极端”变体:

    (function (jQuery, undefined) {
        var $ = jQuery;

        //Use jQuery and $ shortcut for jQuery in this scope
        $("input").val("clickme");

    })(jQuery.noConflict(true));

答案 1 :(得分:1)

您必须手动执行此操作。没有转换器可以自动执行此操作。 jQuery guide to authoring plugins具体描述了插件应该如何绑定到jQuery而不是$,以确保在调用jQuery.noConflict()时它们仍能正常工作。

基本上它归结为像这样包装你的代码:

(function($) {

    // jQuery can be used freely using 
    // the "$" within this code block

})(jQuery);

请记住,这将从全局范围中删除任何意外(和一些有意的)全局变量。要使变量成为全局变量,请将它们分配给window对象,如下所示:

(function($) {

    var myGlobalObj = "hello world";
    window.myGlobalObj = myGlobalObj;
    // Now "myGlobalObj" can be accessed globally

})(jQuery);