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().

Другие вопросы по тегам