У меня есть сайт, использующий «виджет» (из http://healcode.com), который включает script.aculo.us JavaScript-библиотеку. Проблема в том, что сайт, который я создаю, находится на WordPress Таким образом, есть классический jQuery
против script.aculo.us
конфликт.
Я знаю, что мне нужно запустить jQuery в режиме .noConflict()
, но я должен неправильно понимать синтаксис. Когда я присваиваю $
jQuery .noConflict
следующим образом, он все равно отключает функции script.aculo.us:
var $ = jQuery.noConflict();
$(document).ready(function () {
//#nav-main dropdown effects
$('#nav-main ul li').hoverIntent(function () {
$(this).find('.dropdown').stop(true,true).slideDown('900'); },
function(){
$(this).find('.dropdown').stop(true,true).slideUp('500');
});
}); // end document.ready
Я знаю, что присваиваю $
jQuery в режиме .noConflict()
, и я предполагаю, что script.aculo.us (который загружается через виджет в основном теле, поэтому ПОСЛЕ jQuery) пытается повторно присвойте $
обратно script.aculo.us.
Как я могу назначить $
для jQuery таким образом, чтобы позже загруженная библиотека script.aculo.us не конфликтовала? Я уже попробовал следующее без какого-либо успеха (следующий код заставляет скрипт script.aculo.us работать, но jQuery не работает):
jQuery(document).ready(function () {
//#nav-main dropdown effects
jQuery('#nav-main ul li').hoverIntent(function () {
jQuery(this).find('.dropdown').stop(true,true).slideDown('900'); },
function(){
jQuery(this).find('.dropdown').stop(true,true).slideUp('500');
});
}); // end document.ready
EDIT
Вывод консоли отладки для приведенного выше кода:
Uncaught TypeError: Object #<HTMLDocument> has no method 'ready' (anonymous function)
, так что document.ready терпит неудачу, потому что он назначен jQuery, который как-то не загружается должным образом ...
РЕДАКТИРОВАТЬ 2
Оба из 2 (на момент данного обновления) ответов, опубликованных ниже, ничего не делают для решения проблемы, с которой я борюсь. Возможно, они технически правильны, но они не решают мою проблему.