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

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

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

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

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

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

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

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

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

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

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

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

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

Комментарии  

0 #9 Владимир Карлов 16.06.2017 20:21 МСК
Попробовал, половина модулей перестала работать на сайте, начиная с JSN ImageShow, фотографии с Фликера просто перестали грузиться вообще...
Цитировать
+1 #8 Павел 12.01.2017 14:59 МСК
Цитирую Антон:
Все работает - Спасибо!
А как удалить мета-тег?

Пожалуйста!
Вот здесь посмотрите wsjoom.ru/zashchita-sajta/9-kak-udalit-izmenit-meta-tag-generator-v-joomla.html
Цитировать
0 #7 Антон 12.01.2017 14:39 МСК
Все работает - Спасибо!
А как удалить мета-тег?
Цитировать
0 #6 Сергей 03.12.2016 23:15 МСК
Спасибо от души. Мне тоже эта строчка помогла :-)
Цитировать
0 #5 Алексей 31.10.2016 10:36 МСК
Тоже верстаю шаблон и наткнулся на такую проблему. Слава богу нашел ваше решение. Joomla 3.6.3 - полет великолепный! Автору всех бобров!)
Цитировать
+1 #4 Павел 09.02.2016 16:16 МСК
Цитирую Владыка:
Мужик спасибо)

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

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

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

Залогиниться через свой аккаунт в социальной сети


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