Исключаем конфликты между Mootools и jQuery


Итак, предположим, что вы задумали НЕЧТО и по мере того, как проект (или НЕЧТО) развивается вы понимаете, что тут пригодилась бы вторая хорошая библиотека Javascript, т.е. jQuery или же Mootools. Однако, нам, как уже опытным программистам, известно, что как jQuery, так и Mootools и Prototype используют знак доллара ($) в качестве основной рабочей лошадки и перед нами становится задача избежать конфликтных ситуаций при выполнении кода, т.е. подсказывать клиентскому обработчику Javascript какую библиотеку нужно подключать при выполнении того или иного кода, ведь $('element'), например, в Mootools выберет элемент с id=”element”, а в jQuery просто тег ELEMENT. Итак РЕШЕНИЯ:

Безконфликтный код jQuery

     jQuery.noConflict();     
     // код jQuery можно выполнять через селектор jQuery(...)
     jQuery(document).ready(function(){
       jQuery("div").hide(); //спрятать все блоки DIV
     });
     // код Mootools используем как обычно, через $.
     $('idElement').hide(); //спрятать элемент с ID=idElement

Однако, есть ещё и другой вариант, который позволяет работать с двумя библиотеками, но оставлять право использовать селектор “знак доллара” для jQuery:

jQuery.noConflict();
(function($){
//сюда вставляется обычный код jQuery
})(jQuery);

Узнаете самовыполняющиеся функции, которые мы также использовали для создания интерактивных закладок?

Бесконфликтный код Mootools

Тут тоже довольно просто! Если помимо Mootools планируется использование других JavaScript библиотек нужно вместо обычного селектора $ (знак доллара), нужно использовать document.id(), а зато селектор $$ можно использоваь и так, потому что это специальный селектор, свойственный только библиотеке Mootools.

, , ,

  1. #1 by Artem on 15.03.2013 - 10:44 am

    Спасибо за “Коротко и ясно” :)

  2. #2 by Kolass on 03.09.2013 - 10:34 am

    Хорошая идея, но мой mootools.js конфликт с jQuery.ul.js она не решила.

(никто не узнает)

Код на картинке: