Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Подключение нескольких библиотек (по очереди отключаются скрипты) (https://javascript.ru/forum/jquery/34199-podklyuchenie-neskolkikh-bibliotek-po-ocheredi-otklyuchayutsya-skripty.html)

johnnybravo 24.12.2012 07:56

Подключение нескольких библиотек (по очереди отключаются скрипты)
 
Здравствуйте.
Абсолютно ничего не смыслю в jQuery.
Попросили сделать сайт на WP.
Добавил слайдер (плагин), затем решил сделать нормальное меню на jQuery, для этого в HEAD нужно подключить бибилиотеку, подключил:
Код:

<script src="http://yandex.st/jquery/1.6.4/jquery.min.js"></script>
Сам скрипт:
$('div#menutop li').each(function () {if (this.getElementsByTagName("a")[0].href == location.href) this.className = "current";});

В итоге слайдер перестал работать, отключаю библиотеку, слайдер работает, но тогда скрипт для меню свои функции не выполняет. Какой-то наложение библиотек или что? Подскажите пожалуйста, знающие люди.

johnnybravo 24.12.2012 08:03

С форума разработчика слайдера:
Цитата:

2. Multiple jquery inclusions [ vSlider uses inbuilt jquery and there are other plugins which directly embed them ], you can easily check this by view source of your page-> search for term jquery if you find multiple instances of jquery files being inclued like:
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> <script type='text/javascript' src='http://yoursite.com/wp-includes/js/jquery/jquery.js?ver=1.7.1'></script>

Deff 24.12.2012 08:16

johnnybravo,
Одной библиотеки, уже подключенной к слайдеру - достаточно, (скрипт меню естественно должен располагаться ниже библиотеки слайдера
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js">

johnnybravo 24.12.2012 08:52

Чтобы не захламлять топик, посмотрите пожалуйста на код сайта.
Скрипт меню перенес в HEADER, до этого был в body и теперь он не работает, даже если подключить библиотеку. (слайдер работает). Я запутался.
Для примера 2 ссылки работающие Статьи и Контакты

Ещё ошибка такая появилась
Uncaught TypeError: Property '$' of object [object Window] is not a function

Deff 24.12.2012 09:22

Цитата:

Сообщение от johnnybravo
Чтобы не захламлять топик, посмотрите пожалуйста на код сайта.

Данных скриптов,
Цитата:

Сообщение от johnnybravo
2. Multiple jquery inclusions [ vSlider uses inbuilt jquery and there are other plugins which directly embed them ], you can easily check this by view source of your page-> search for term jquery if you find multiple instances of jquery files being inclued like:
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> <script type='text/javascript' src='http://yoursite.com/wp-includes/js/jquery/jquery.js?ver=1.7.1'></script>

Указанных в сообщении 3, я не обнаружил
==================================================
Верните состояние скриптов на сайте к моменту написания первого поста

johnnybravo 24.12.2012 09:30

Вернул. Теперь по ссылке меню работает, а слайдер превратился во что-то статичное.

Вот описание ошибки и вероятное решение этой проблемы, может он как-то применим ко мне?
Цитата:

This is a syntax issue, the jQuery library included with WordPress loads in "no conflict" mode. This is to prevent compatibility problems with other javascript libraries that WordPress can load. In "no-confict" mode, the $ shortcut is not available and the longer jQuery is used, i.e.

jQuery(document).ready(function ($) {

By including the $ in parenthesis after the function call you can then use this shortcut within the code block.
Предлагается $ заменить на jQuery

Цитата:

Данных скриптов,
Эти скрипты с форума разработчика.

johnnybravo 24.12.2012 10:14

Всё разобрался.
Отключил библиотеку.
Изменил код скрипта для меню:
<script type="text/javascript">
jQuery('div#menutop li').each(function () {if (this.getElementsByTagName("a")[0].href == location.href) this.className = "current";});
 </script>

:dance:


Часовой пояс GMT +3, время: 08:47.