简体   繁体   中英

How do I use jQuery.noConflict();

After installing lightbox for my website my comments stopped working. I looked at the code and moved the javascript links that were in the <head> (the ones that came with lightbox) in the to above the javascript links that came with Wordpress-Buddypress. Before my javascript links from Lightbox were below the javascript links that came with Wordpress.

After making the switch, the comments started working again on my website but now the lightbox does not work.

When I use Firebug to find errors, I get this error.

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

That code comes from "videolightbox.js" which was a file that came with my lightbox.

I did lots of reseach on this problem and I am thinking that I might need to use jQuery.noConflict(); but I have no idea how to use it? I was looking at this link

but I can't seem to get it to work because I have no idea how to use it. I also tried replacing all the $() with jQuery() but that did not solve my problem.

but I have no idea how to use it?

var $j = jQuery.noConflict();

and your code will change from $(selector) to $j(selector)

A lot of examples are given here http://api.jquery.com/jQuery.noConflict/

One thing to consider closely is the script loading order and watch for repeat loading of JQuery. In some (hopefully rare) situations, you can load JQuery, set up some code that uses it, then reload JQuery which tosses away the events that were set up after loading it the first time.

I know I ran into that situation once, but I can't remember the details that led to it occurring.

To your answer

$=jQuery.noConflict();

Now you can use $('#id').css(...);

The error is probably causing the rest of the code not being executed, .overlay is not a function means that .overlay is not a function and $ is working fine.

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

It simply means you are trying to call .overlay before it exists.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM