Конфликт Javascript на моей HTML-странице - PullRequest
1 голос
/ 27 марта 2009

У меня есть меню аккордеона и сценарий lightwindow на моей веб-странице. Скрипт lightwindow не работает из-за скрипта аккордеона, потому что, если я удаляю последний, скрипт lightwindow работает. Должен быть конфликт, но что?

Вот головной раздел моей страницы:

<!-- lightwindow files -->
<script type="text/javascript" src="lightwindow/javascript/prototype.js"></script>
<script type="text/javascript" src="lightwindow/javascript/scriptaculous.js?load=effects"></script>
<script type="text/javascript" src="lightwindow/javascript/lightwindow.js"></script>
<link rel="stylesheet" href="lightwindow/css/lightwindow.css" type="text/css" media="screen" />


<!-- accordion scripts -->
<script src="js/jquery-1.2.1.min.js" type="text/javascript"></script>
<script src="js/menu.js" type="text/javascript"></script>
<script src="js/jquery.cookie.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="css/accordion.css" />

Спасибо, что уделили время.

Приветствия

tochiro

Ответы [ 5 ]

3 голосов
/ 27 марта 2009

Вам потребуется использовать метод jQuery.noConflict, описанный в http://docs.jquery.com/Core/jQuery.noConflict.

Не точно, если версия 1.2.1 будет иметь его.

Просто прочитайте инструкции на этой странице, чтобы узнать, как их подключить. Во-первых, вам нужно поставить jQuery перед другими библиотеками.

Обновление: добавлен код ниже, чтобы помочь вам применить исправление. Если строка jQuery.noConflict () вызывает ошибку, возможно, вам придется попробовать более новую версию jQuery.

<script src="js/jquery-1.2.1.min.js" type="text/javascript"></script>
<script type="text/javascript"> jQuery.noConflict() </script>

<!-- lightwindow files -->
<script type="text/javascript" src="lightwindow/javascript/prototype.js"></script>
<script type="text/javascript" src="lightwindow/javascript/scriptaculous.js?load=effects"></script>
<script type="text/javascript" src="lightwindow/javascript/lightwindow.js"></script>
<link rel="stylesheet" href="lightwindow/css/lightwindow.css" type="text/css" media="screen" />


<!-- accordion scripts -->
<script src="js/menu.js" type="text/javascript"></script>
<script src="js/jquery.cookie.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="css/accordion.css" />

Кроме того, обратите внимание, что вам может понадобиться поменять часть кода с $ (...) на jQuery (...)

Со страницы документа jQuery:

там, где вы использовали $ ("div p"), ​​теперь вы должны выполнить jQuery ("div p").

1 голос
/ 12 ноября 2010

Когда вы добавляете jQuery.noConflict (); - вам также нужно зайти в скрипт jQuery и поменять все переменные $ на jQuery

1 голос
/ 11 мая 2010
<script type="text/javascript"> jQuery.noConflict() </script> 

Просто хотел сказать, что этот маленький трюк творил чудеса для меня, спасибо. Если вы используете хроноформы, это, вероятно, ответ на ваши проблемы с JavaScript.

Не более "СДЕЛАНО, НО ОШИБКИ НА СТРАНИЦЕ" Наконец-то.

Еще раз спасибо

0 голосов
/ 27 марта 2009

У вас почти наверняка конфликт между JQuery и Prototype. Например, они оба определяют $.

JQuery имеет режим совместимости, который вы можете включить, чтобы избежать конфликтов.

0 голосов
/ 27 марта 2009

Возможно, в обеих библиотеках определен метод / функция с одинаковым именем.

Если не дублирующееся имя метода / функции, проверьте дублирующиеся имена глобальных переменных.

Я несколько раз сталкивался с конфликтами при попытке добавить в документ методы, которые перезаписывали друг друга.

...