Мне нужен конвертер, чтобы сделать любой код jquery, чтобы сделать режим no.conflict? - PullRequest
1 голос
/ 13 марта 2010

Мне нужен конвертер для создания любого кода jquery / плагина для работы в режиме no.conflict?

или это просто возможно найти и заменить.

Ответы [ 2 ]

1 голос
/ 13 марта 2010

Вы должны сделать это вручную. Там нет конвертеров, чтобы сделать это автоматически. В руководстве jQuery по созданию плагинов конкретно описывается, как плагины должны связываться с 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);
1 голос
/ 13 марта 2010

Что касается ярлыка $: если вы поместите код, например, в правильно созданной анонимной функции вы все равно можете использовать ее. Как:

    (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));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...