JQuery / Javascript конфликтует? - PullRequest
       4

JQuery / Javascript конфликтует?

2 голосов
/ 06 сентября 2010

Я только что установил многоязычный мод на свой сайт.

Проблема в том, что, похоже, существует конфликт между файлами javascript из языкового мода и файлами javascript, которые уже были на странице.

<!-- language files here -->
<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="js/translationEngine.js"></script>
<script type="text/javascript" src="js/jquery.cookie.js"></script> 
<script type="text/javascript" src="js/jquery.translate-1.3.9.min.js"></script>
<script>var browserlang = 'en';</script> 


<!-- Javascript -->

<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="js/jquery.pngFix.pack.js"></script>
<script type="text/javascript" src="js/jquery.flow.1.2.min.js"></script>
<script type="text/javascript" src="js/jquery.prettyPhoto.js"></script>
<script type="text/javascript" src="js/concept.js"></script>

js / jquery-1.3.2.min.js - это то, что заставляет работать слайдер 3 изображений на домашней странице, но ... похоже, что это также мешает работе переводчика.

Если вы удалите js / jquery-1.3.2.min.js со страницы, переводчик работает нормально, но ползунок больше не работает.

удаление со страницы js / jquery-1.4.2.min.js не приводит к тому, что переводчик также работает, на самом деле он вызывает больше ошибок в спине.

Может ли кто-нибудь направить меня в правильном направлении, которое позволило бы мне заставить переводчик языка и слайдер изображений работать одновременно?

http://filefx.com

Спасибо:)

Ответы [ 5 ]

4 голосов
/ 06 сентября 2010

Короткая версия - удалить это:

<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>

И обновить ваши плагины, вероятно, есть версии 1.4.x для каждого из них.Включив jQuery во второй раз, как вы сейчас, он уничтожит плагины и вызовет всевозможные проблемы ... первый шаг - удаление второго (возможно, более старого) экземпляра.Редактировать: Вот обновленная версия jFlow под названием jFlow plus , которая работает с 1.4.2.

4 голосов
/ 06 сентября 2010

Проверьте функцию jQuery noConflict . Эта функция указывает jQuery отказаться от контроля над переменной $. Таким образом, другие библиотеки могут использовать его.

Онлайн-документы дают довольно хорошее руководство по использованию этой функции. Это спасло меня несколько раз.

Пример из онлайн-документов:

<script type="text/javascript" src="other_lib.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
  $.noConflict();
  jQuery(document).ready(function($) {
    // Code that uses jQuery's $ can follow here.
  });
  // Code that uses other library's $ can follow here.
</script>

По сути, после вызова noConflict вы все равно можете использовать jQuery, просто используйте его, используя имя переменной jQuery вместо $.

Надеюсь, это поможет!

1 голос
/ 12 апреля 2011

Я изменяю все файлы .js на странице, используемой снизу код:

<script>
var K = jQuery.noConflict();
     alert(K);
     jQuery(document).ready(function () {

         alert("Bye");
     });
</script>

Теперь работает нормально.

1 голос
/ 05 марта 2011

Я всегда разрешал конфликты между двумя версиями jquery, например, jQuery 1.3.2 и jQuery 1.4.2 на одной странице, используя iframes, но недавно я обнаружил, что вы можете использовать только версию jquery-1.5.1.js и все работаетхорошо.

0 голосов
/ 06 сентября 2010

В итоге я просто изменил порядок загрузки библиотек.

Сначала я загружаю все библиотеки jquery, от самых новых до самых старыхЗатем я вызвал javascript-файлы, основанные на jquery.

Теперь все работает нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...