Как мне использовать jQuery.noConflict (); - PullRequest
0 голосов
/ 24 января 2012

После установки лайтбокса для моего сайта мои комментарии перестали работать.Я посмотрел на код и переместил ссылки на javascript, которые были в <head> (те, что поставлялись с лайтбоксом) в вышеупомянутые ссылки на javascript, которые пришли с Wordpress-Buddypress.До того, как мои ссылки javascript из Lightbox находились ниже ссылок javascript, поставляемых с Wordpress.

После переключения комментарии снова начали работать на моем веб-сайте, но теперь лайтбокс не работает.

КогдаЯ использую Firebug для поиска ошибок, я получаю эту ошибку.

$("#videogallery a[rel]").overlay is not a function

Этот код взят из "videolightbox.js", который был файлом, поставляемым с моим лайтбоксом.

Я сделал многоисследовать эту проблему, и я думаю, что мне может понадобиться использовать jQuery.noConflict();, но я не знаю, как ее использовать?Я смотрел на эту ссылку

, но я не могу заставить ее работать, потому что понятия не имею, как ее использовать.Я также попытался заменить все $() на jQuery(), но это не решило мою проблему.

Ответы [ 4 ]

1 голос
/ 24 января 2012

но я понятия не имею, как его использовать?

var $j = jQuery.noConflict();

и ваш код изменится с $ (селектор) на $ j (селектор)

Здесь приведено множество примеров http://api.jquery.com/jQuery.noConflict/

0 голосов
/ 24 января 2012

Ошибка, вероятно, приводит к тому, что остальная часть кода не выполняется, .overlay не является функцией, означает, что .overlay не является функцией и $ работает нормально.

var test; test("#videogallery a[rel]").test()
//TypeError: test is not a function <-- You would see this if $ wasn't working

var test = function(){return {};};
test("#videogallery a[rel]").test();
//TypeError: test("#videogallery a[rel]").test is not a function <-- You see this because .overlay isn't working

Это просто означает, что вы пытаетесь позвонить .overlay до того, как он существует.

0 голосов
/ 24 января 2012

к вашему ответу

$=jQuery.noConflict();

Теперь вы можете использовать $ ('# id'). Css (...);

0 голосов
/ 24 января 2012

Следует внимательно рассмотреть порядок загрузки скрипта и следить за повторной загрузкой JQuery.В некоторых (возможно, редких) ситуациях вы можете загрузить JQuery, настроить некоторый код, который его использует, а затем перезагрузить JQuery, который отбрасывает события, которые были настроены после его первой загрузки.

Я знаю, что однажды столкнулся с этой ситуацией, но я не могу вспомнить детали, которые привели к ее возникновению.

...