jquery конфликт между nivoSlider и внешним jquery
Я управляю сайтом WordPress, на котором есть домашний сайт Nivoslider. Мне пришлось использовать другой плагин, чтобы он работал, мне нужно было включить jquery в файл header.php, внутри тегов 'head'. Теперь, когда я включаю файлы JQuery под <?php wp_head(); ?>
, слайдер Nivo не работает и застревает на экране загрузки. Я попытался найти эту проблему в Интернете и попробовал решение, в котором я добавил следующий код выше <?php wp_head(); ?>
:
<?php
wp_deregister_script('jquery'); // Remove the default jQuery script
wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js', false); // Register the Google hosted Version
wp_enqueue_script('jquery'); // Enqueue the Google Hosted version
?>
После добавления этого кода выше <?php wp_head(); ?>
первый слайд слайдера появляется только сейчас, и я не могу переключаться между слайдами, нажимая кнопки "следующий / предыдущий". Кроме того, когда я удаляю код <?php wp_head(); ?>
из файла header.php и добавления файлов jquery мой другой плагин начинает работать нормально, но слайдер перестает работать. Я предполагаю, что jquery загружается дважды, что приводит к конфликту, но я не могу понять, откуда возникла проблема. Вот мой сайт, на котором я использую Nivoslider и другой плагин: http://ignoremusic.com/
1 ответ
Ошибка в консоли JS:
Uncaught TypeError: Property '$' of object [object Object] is not a function
В WordPress вы можете столкнуться с некоторыми проблемами при использовании встроенной версии jquery. Вместо использования:
$('#div').hide()
попробуй это:
jQuery('#div').hide()
Или вы можете использовать JQuery.noConflict()
http://api.jquery.com/jQuery.noConflict/
Я бы лично вставил JS-код вашего слайдера в функцию noConflict().