Многие разработчики используют в своих расширениях для сайтов библиотеку jQuery, но создатели jQuery не стоят на месте и постоянно выпускают новые сборки и если на странице загружаются две копии библиотеки jQuery разных версий, то неизбежно возникнет конфликт. Одно или другое расширение перестанут работать. Что нужно сделать в этом случае?

Некоторые разработчики наивно полагают, что если в любое место Вашего кода вставить:

Код:

 

jQuery.noConflict ();

 

то проблема будет решена, но, к сожалению, в некоторых случаях это не помогает.

Правильным решением в данном случае будет последовательная загрузка библиотеки

jQuery нужной Вам версии и вставка сразу после неё кода:

 

Код:

 

var MyjQuery123 = jQuery.noConflict();

 

Можно вставить указанный выше код объявления Вашей переменной прямо в код библиотеки jQuery. Так будет надежнее.

В дальнейшем Вам нужно использовать Вашу переменную, например:

Код:

 

MyjQuery123(document).ready(function() { }

 

 

Удачных Вам проектов!

 

Comments   

0 # Спасибо огромное за помощGuest 2013-01-08 10:47
Все работает спасибо огромное за помощь!!!!
Reply | Reply with quote | Quote | Report to administrator
+2 # Когда нужен простой noConflictEcolora 2013-03-13 02:54
С другой стороны может возникнуть проблема в конфликте jQuery не с другой такой же библиотекой, а с Mootools.

Типичным признаком этого будет сообщение в Firebug-е:

Quote:
TypeError: $(...).addEvent is not a function
Вот тогда Вам может помочь элементарная вставка кода после Вашей библиотеки jQuery:

Quote:
jQuery.noConflict();
Поскольку этот код "очищает" указатель $ на переменную jQuery и теперь любой вызов $() не будет означать то же что и jQuery().

А $() как известно, как раз и используется в Mootools.
Reply | Reply with quote | Quote | Report to administrator
0 # ответGuest 2014-02-17 06:11
гениально
Reply | Reply with quote | Quote | Report to administrator
0 # Спасибо!!!Guest 2014-04-19 16:23
Убил целый день! Вот почему такие чёткие и простые решения не находятся сразу)
Reply | Reply with quote | Quote | Report to administrator
0 # Пожалуйста!!!Ecolora 2014-04-20 00:14
Потому что сайт в бане у Яндекса (за сапоссылки), надеюсь временно. Поэтому рекомендую пользоваться поиском Google, всегда! Я им сам пользуюсь. Он больше сайтов найдет.
Reply | Reply with quote | Quote | Report to administrator
0 # Не понимаюGuest 2014-05-08 15:22
Простите но я ничего не понял. Где и куда нужно вставлять?

Скажем был у меня один плагин, который вызываел первую jquery



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



Как сделать что бы оба плагина работало? Сделать так?



var MyjQuery123 = jQuery.noConflict();



var MyjQuery123 = jQuery.noConflict();

Прошу помогите ато я не понимаю, я в программировани и не силен
Reply | Reply with quote | Quote | Report to administrator
0 # RE: Не понимаюEcolora 2014-05-09 06:03
Покажите эту статью разработчикам плагинов. Пусть они у себя правят.
Reply | Reply with quote | Quote | Report to administrator
0 # RE: Решение конфликта использования нескольких библиотек jQuery в одном кодеGuest 2014-10-03 06:35
А у меня при добавлении этого кода, вообще перестает всё работать, раньше хотя бы одна работала галерея, а теперь вообще ни одна не работает :cry:
Reply | Reply with quote | Quote | Report to administrator
0 # РазработчикамEcolora 2014-10-03 06:47
Здравствуйте. В данной статье изложен совет разработчику расширения. Если же вы делаете сайт, то наиболее правильным будет вообще исключить все загрузки библиотеки jQuery, кроме одной. По возможности - отключить в расширениях, или вырезать в коде, если не отключается.
Reply | Reply with quote | Quote | Report to administrator
0 # 123Guest 2015-08-28 19:59
не говорите "guest" убил ...
Reply | Reply with quote | Quote | Report to administrator
+1 # Спасибо!Толик 2016-02-14 16:21
Решение шикарное!
Бился 3 дня, пока не нашёл ваш сайт!
Спасибо!
Reply | Reply with quote | Quote | Report to administrator

Add comment


Security code
Refresh