Задать вопрос

Кофликт скриптов, почему так происходит?

На сайте wordpress подключаю страницу отдельную со своими скриптами, но с версией jquery которая автоматически в wordpres мои скрипты не работают. Подключаю версию jquery другую, то мои скрипты работают, а слайдер темы исчезает и не работает. Если подключаю наоборот, то мои скрипты не работают, а слайдер появляется и работает. Подскажите, как победить этот конфликт?
88a1a267b1044b2aac87024d7c529a31.jpg
3673f4c6b0754313a0865b58358706fa.jpg
  • Вопрос задан
  • 220 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@elarkov Автор вопроса
Вот решение, которое мне помогло. Так как я подключаю скрипт в шапке сайта, то мне просто нужно было свой скрипт обернуть в document-ready функцию:
// скрипт в шапке
jQuery(document).ready(function( $ ) {
	
 // код моего скрипта
	
});


Т.е изначально код моего скрипта к примеру выглядел так:
$(function () { 

// код моего скрипта

});


Затем я просто его обернул в функцию указанную выше и все заработало, теперь мой код выглядит вот так:

// скрипт в шапке
jQuery(document).ready(function( $ ) {
	
  // код моего скрипта
	
});


Надеюсь у кого будет, такая же ситуация - это им поможет и сократить время в поиске проблемы.
Всем спасибо за помощь!
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Используйте ту версию jQuery, которая поставляется с WordPress, подгружая ее просто указав в виде зависимости для вашего скрипта. В вашем коде используйте режим noConflict

(function($){

    /**
     * Immediate execution
     */
    console.log();
    
    /**
     * When DOM is ready
     */
    $(document).ready(function(){
    
    });
    
    /**
     * When all content is loaded
     */
    $(window).load(function(){

    }); // window.load END

})(jQuery);
Ответ написан
Комментировать
Была аналогичная проблема, когда старую тему на вп, переводил на новый jquery.
Помогла библиотека jquery-migrate.
Вот как выглядит инициализация скриптов у меня:
wp_deregister_script('jquery');
wp_register_script('jquery', get_bloginfo('template_url').'/js/jquery.min.js', false, '1.10.1');
wp_enqueue_script('jquery');
wp_enqueue_script('query-migrate', get_bloginfo('template_url').'/js/jquery-migrate-1.4.1.min.js', array('jquery'), '1.4.1');


Сама библиотека тут.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы