Устраняем конфликт Jquery

Эта статья будет полезна тем, кто сам верстает шаблоны для сайтов.

Наверное, Вы сталкивались с проблемой, когда тег <jdoc:include type="head" /> подключает к шаблону кучу скриптов, абсолютно Вам ненужных. Мало того, что это замедляет загрузку Вашего сайта, так ещё бывает: скрипты не дают нормально работать модулям, плагинам и т.д. из-за конфликта между собой (конфликт Jquery).

Я впервые столкнулся с этой проблемой, когда сверстал свой первый шаблон на «framework bootstrap» (адаптивная вёрстка). Сверстал шаблон, установил его на движок, начал наполнять контентом, выводить модули… И вот, решил проверить, как будет отображаться моё меню на мобильных устройствах. Поначалу всё показалось превосходным, но позже я заметил, что, находясь на странице категории материалов, мобильное меню некорректно работает, а точнее, работало следующим образом:

  • захожу на страницу категории;
  • нажимаю на кнопку меню, чтобы оно развернулось;
  • снова нажимаю на меню, чтобы скрыть пункты;
  • теперь, не перезагружая (не обновляя) страницы, пытаюсь нажать на кнопку меню… и вот она проблема: оно не раскрывается!

На решение данного трабла у меня ушло немало времени. Я обратился за советом к знакомым, которые мне подсказали, что у меня один и тот же скрипт в шаблоне подгружается несколько раз, что меня очень удивило: шаблон писал сам, подключал всё сам, без дубляжей…

И тут во мне закралось подозрение, что тот самый тег «Head», который мы прописываем в шапке нашего «index.php», подключает свои скрипты. Отключил я этот тег, и, действительно, в коде страницы пропали лишние скрипты. Но… убирать тег «Head» не рекомендуется, так как он выводит ещё и мета-теги типа «title»…

Вот тут я и начал искать, как убрать из этого тега только ненужные скрипты. Перелопатил, можно сказать, горы страниц в интернете, но, в итоге, нарыл то, что мне помогло решить эту проблему.

А решается она следующим путём:

В файле «index.php» Вашего шаблона сразу перед строкой <jdoc:include type="head" /> прописываете следующий код:

Если проблема не уходит, то смотрите исходный код страницы, копируете адрес ненужного скрипта и, по аналогии, вписываете его в этот код.
Всё должно вылечиться!

Удачных разработок!

Если статья оказалась полезной, расскажите о ней в социальных сетях

Комментарии  

0 #4 Павел 09.02.2016 16:16 МСК
Цитирую Владыка:
Мужик спасибо)

Всегда Пожалуйста!
Цитировать
0 #3 Владыка 09.10.2015 08:29 МСК
Мужик спасибо)
Цитировать
0 #2 Александр Бельцов 23.04.2015 01:39 МСК
Пусть тебе Бог помогает во всем.. я уже неделю ищу решение... только вот ты и помог! Спасибо!
Цитировать
0 #1 Дмитрий Кащеев 05.02.2015 08:11 МСК
Спасибо тебе, добрый человек!
Нигде нормальных советов не нашел, только у тебя. Мне кстати помогла только строчка
unset($headlink['scripts']['/media/jui/js/jquery-noconflict.js']);

оказалось достаточно чтобы jquery нормально заработало.
Цитировать

Добавить комментарий

Loader


Защитный код Обновить