Intereting Posts
Как фильтровать по slug в зависимости от выбора языка Загрузка флеш-памяти Flash на сайт mu wordpress Добавить класс CSS для каждого изображения Тот же термин из пользовательской таксономии в двух разных пользовательских типах сообщений? Установите значение по умолчанию для параметра? Проблемы с разбивкой по страницам с использованием WP_Paginate Plugin Настроить редактор меню панели инструментов Соответствующая макетная панель WordPress Добавление боковых панелей в WordPress Theme Как заставить WooCommerce воссоздать домашнюю страницу? Скрыть сообщения администратора и страницы в Dashboard атрибуты продукта woocommerce Как медиабиблиотека определяет, есть ли в файле PDF изображения предварительного просмотра? Что могло бы изменить все & # 039; символы в моем контенте на строки? WP_Query для вложений без дублирования post_parent и отображения помеченного изображения

Проблема с JQuery NoConflict

Я создаю тему wordpress, и я использую некоторые скрипты, которые используют jQuery. Он работал нормально, пока я не включил определенный плагин под названием «Платные загрузки».

Это фактически заставило все зависимости jquery больше не работать. Итак, я думаю, что, возможно, я делаю что-то неправильно. Например, я использую prettyPhoto и инициализирую его как:

/* Pretty Photo */ wp_register_style('pretty-photo-css', LIBRARIES_URI . "prettyPhoto/css/prettyPhoto.css"); wp_enqueue_style('pretty-photo-css'); wp_register_script('jquery-pretty-photo', LIBRARIES_URI . "prettyPhoto/js/jquery.prettyPhoto.js"); wp_enqueue_script('jquery-pretty-photo', array('jquery-my')); 

jquery.prettyPhoto.js – это настоящий файл prettyPhoto, и я только что добавил эти несколько строк в конце этого файла, чтобы вызвать эффект prettyPhoto:

 jQuery.noConflict() jQuery(function(){ jQuery("a[rel^='prettyPhoto']").prettyPhoto(); }); 

JQuery выставляется как:

  wp_register_script('jquery-my', "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"); wp_enqueue_script('jquery-my'); 

Как я уже упоминал, это работало до включения плагина «Платные загрузки». Мне интересно. Я делаю что-то неправильно ? Когда плагин включен, я получаю такие ошибки в консоли Chrome javascript:

 Uncaught TypeError: Object [object Object] has no method 'prettyPhoto' 

Кажется, что есть конфликт, потому что плагин добавляет jquery для своей собственной цели? Есть идеи ?

Попробуйте метод вызова `prettyPhoto ', когда DOM готов, замените свой код:

 jQuery.noConflict() jQuery(function(){ jQuery("a[rel^='prettyPhoto']").prettyPhoto(); }); 

с этим:

 jQuery(document).ready(function($) { $("a[rel^='prettyPhoto']").prettyPhoto(); }); 

Кроме того, плагины «Платные загрузки» задерживают последнюю версию jQuery, используемую WordPress, это 1.6.1 , было бы лучше, если бы вы зарегистрировали ту же самую версию jQuery из Google-CDN, что и WordPress

Мы можем так использовать. Его немного отличается. Поэтому он работает отдельно.

 var $jscript = jQuery.noConflict(); $jscript(document).ready(function(){ $jscript("a[rel^='prettyPhoto']").prettyPhoto(); });