Показать сообщение отдельно
  #1 (permalink)  
Старый 25.12.2012, 20:25
Кандидат Javascript-наук
Отправить личное сообщение для hrundel Посмотреть профиль Найти все сообщения от hrundel
 
Регистрация: 01.08.2009
Сообщений: 102

Подключаются две библиотеки jQuery и возникает ошибка.
Помогите разобраться в проблеме. Я знаю JavaScript на очень простом уровне.

На странице http://www.a-bunker.ru/gallery/simple-gallery/ есть всплывающий лайтбокс с изображениями, сделанный с помощью плагина “rps-image-gallery” (сайт на WordPress, если кому-то интересно). Лайтбокс работает с помощью скриптов
http://www.a-bunker.ru/wp-content/pl...k.js?ver=1.0.0 и
http://www.a-bunker.ru/wp-content/pl...k.js?ver=1.0.0

На этой же странице у меня есть горизонтальное выпадающее меню на javascript. Оно сделано так, что работает и с выключенным JavaScript и с включенным (На http://a-bunker.ru оно работает как надо). Это меню использует скрипты http://www.a-bunker.ru/wp-content/th...y-1.2.6.min.js и
http://www.a-bunker.ru/wp-content/th...s/superfish.js (они подключаются внутри тега <head>). Так вот это меню на это странице не работает.

И меню и лайтбокс используют одну и ту же библиотеку jQuery. Я полагаю, конфликт в двух одновременно подключаемых экземплярах библиотеки jQuery. Когда я убираю экземпляр библиотеки для лайтбокса (внизу страницы), он перестаёт работать, а меню начинает. Во всех браузерах ситуация одна и та же.

Я смотрел в консоли ошибок FF и Chrome когда все js-скрипты подключены и там такая ошибка (в FF она имеет такой вид):
TypeError: jQuery(...).superfish is not a function
jQuery('ul.top-menu').superfish();

Когда же библиотека jQuery для лайтбокса отключена, то эта ошибка исчезает, и появляется новая, скриншот которой можно увидеть во вложении к моему посту.
-- На скриншоте написано Uncaught TypeError: Cannot read property 'opacity' of indefined ---

Моё предположение: используются две разных версии jQuery, поэтому лайтбокс не может работать, когда я отключаю его «родную» js-библиотеку jQuery.

Поясните, пожалуйста могут ли работать две jQuery библиотеки для двух разных эффектов сайта вместе? Если могут, то как избежать подобных проблем как у меня? Что я должен изменить в коде меню, чтобы всё заработало (я полагаю, что в скрипте common.js ошибка легко уловимая и её исправить достаточно легко)?
Изображения:
Тип файла: jpg jq.jpg (22.4 Кб, 8 просмотров)

Последний раз редактировалось hrundel, 25.12.2012 в 20:30. Причина: Скриншот маленький, добавил текст ошибки на нём
Ответить с цитированием