2012-04-25 2 views
0

Я не очень хорошо знаком с jQuery.noConflict. Я попытался реализовать его пару раз, но я чувствую, что делаю это неправильно.JQuery No Conflict jquery-1.7.1.min.js

Есть ли способ установить noConflict с "jquery-1.7.1.min.js"? Я помещаю его в фактический файл или в заголовок моего индекса или обоих? Я пытался следовать примерам, но я знаю, что делаю это неправильно.

Любые рекомендации или краткие примеры помогут мне в огромной степени!

+0

Как Хель p, когда мы не можем даже увидеть, как вы это делаете или что вы можете делать неправильно? – Sparky

ответ

4
var foo = $.noconflict(); 
foo('body').addClass('bar'); 

Вы можете либо присвоить ему новый псевдоним (как показано выше) или вызвать $.noConflict и только jQuery доступны для использования. Если вы выбрали псевдоним, хотя вы должны использовать этот новый псевдоним каждый раз, когда хотите ссылаться на jQuery.

Имейте в виду, что, хотя вы можете включить noConflict, но до сих пор он доступен при необходимости, используя анонимную функцию:

// disable $ and force use of myJQ 
var myJQ = jQuery.noConflict(); 
(function($){ 
    // 
    // be able to use $ within this block and have it mean jQuery 
    // 
    $('body').addClass('foo'); 
})(myJQ); 

// we're outside the block, now we're back to myJQ 
myJQ('body').removeClass('foo'); 
+0

Он фактически восстанавливает '$' до того, что было установлено до загрузки jQuery. –

+0

@Rocket: Touché, исправлено мое сообщение. –

+0

@Rocket: Вообще-то, нет. «мы можем вернуть управление' $ 'обратно в другую библиотеку с вызовом' $ .noConflict() '. Значение псевдонима jQuery' $ 'исчезнет, ​​и мы остаемся с' jQuery' (если вы не передадите ' true' для вызова, и в этом случае 'jQuery' тоже уходит.) ([см. для себя] (https://github.com/jquery/jquery/blob/376e0d9fa8ff4e9ca0b77a6f0d0b268ac7faa87e/src/core.js#L368-378)) –

2

Вы пробовали следующие примеры:

http://api.jquery.com/jQuery.noConflict/

Я думаю, что он говорит об этом. Проверьте свои браузеры, чтобы увидеть какие-либо ошибки.

4

Нет режима конфликта не является простым в использовании. Включите это вскоре после загрузки JQuery и любые JQuery-зависимые библиотеки:

var $j = jQuery.noConflict(); 

Затем, вместо того, чтобы использовать $ для всего, использовать $j:

var elements = $j('.class-name'); 
0

Я бы рекомендовал использовать noConflict вызова, а также в качестве оберточной кода JQuery с анонимной функции, так что вы можете позвонить по JQuery $:

jQuery.noConflict(); 
(function ($) { 
    // Now you can use $ to call jQuery 
}(jQuery));