Где использовать jQuery.noConflict - PullRequest
1 голос
/ 22 сентября 2009

У меня есть код, который мне дали в jQuery, и я действительно новичок в этом. Мне нужно использовать метод jQuery.noConflict (), потому что я также использую инфраструктуру Mootools. Я просто не знаю, где я должен заменить символы $ в коде для 'jQuery'. Любая помощь будет принята с благодарностью!

Код для этого находится на www.cshellarchitecture.com/test/js/flexibg.js

Ответы [ 4 ]

3 голосов
/ 22 сентября 2009

Поскольку вы структурируете свой код таким образом, как шаблон модуля , вы можете сделать что-то вроде этого:

var flexiBackground = (function($){ // notice the $ argument
  //$ === jQuery only within this scope...

})(jQuery.noConflict()); // call noConflict and pass the jQuery reference to $

Сделав это, вы сможете ссылаться на jQuery обычным образом, с помощью $ идентификатора только внутри области самовыполняющейся анонимной функции, назначенной flexiBackground.

3 голосов
/ 22 сентября 2009

Это довольно просто - после ввода jQuery.noConflict(); вам нужно просто заменить все $ экземпляры на jQuery.

В качестве альтернативы, если вы привыкли полагаться на $ как наглядное сокращение для распознавания при совершении вызовов в платформу, вы можете выполнить $jq = jQuery.noConflict();, а затем использовать $jq вместо jQuery во всем ваш код. В вашем случае вы замените $ на $jq в коде, который вам предоставлен.

0 голосов
/ 22 сентября 2009

Документы jQuery для метода noConflict () говорят:

Запустите эту функцию, чтобы вернуть управление переменной $ той библиотеке, которая ее впервые реализовала .... Используя эту функцию, вы сможете получить доступ к jQuery только с помощью переменной jQuery.

В этом случае, если вы работаете в режиме без конфликтов, каждый вызов jQuery через переменную «$» должен быть заменен на «jQuery».

0 голосов
/ 22 сентября 2009

Некоторые примеры взяты из вашего связанного файла кода:

    var $window = $(window),
    $body = $('body'),
    imageID = "expando",
    tallClass = 'tall',
    wideClass = 'wide',
    $bgImage, $wrapper, img, url, imgAR;

    /**
            Are we dealing with ie6?
    */
    var ie6 = ($.browser.msie && parseInt($.browser.version, 10) <= 6);

Должно быть:

    var $window = jQuery(window),
    $body = jQuery('body'),
    imageID = "expando",
    tallClass = 'tall',
    wideClass = 'wide',
    $bgImage, $wrapper, img, url, imgAR;

    /**
            Are we dealing with ie6?
    */
    var ie6 = (jQuery.browser.msie && parseInt(jQuery.browser.version, 10) <= 6);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...