How to check jQuery plugin and functions exists?
I have a plugin in some pages but in some other pages I don't want it so I didn't reference its script file.
How to check if the plugin functions exist before using it.
In my case I am using this plugin: and I use it like this:
$('#marquee-inner div').marquee('pointer').mouseover(function() {
$(this).trigger('stop');
}).mouseout(function() {
$(this).trigger('start');
}).mousemove(function(event) {
if ($(this).data('drag') == true) {
this.scrollLeft = $(this).data('scrollX') + ($(this).data('x') - event.clientX);
}
}).mousedown(function(event) {
$(this).data('drag', true).data('x', event.clientX).data('scrollX', this.scrollLeft);
}).mouseup(function() {
$(this).data('drag', false);
});
What I want is to make a check before calling this marquee function if it exist or not.
if ($.fn.marquee) {
// there is some jquery plugin named 'marquee' on your page
}
You can also do this. Let me take jQuery marquee example.
This is good if you are using only jQuery.
if($().marquee) {
// marquee is loaded and available
}
OR
if($.fn.marquee !== undefined) {
// marquee is loaded and available
}
Similar to above but Safe when you are using other JS frameworks Mootools etc.
if(jQuery().marquee) {
// marquee is loaded and available
}
OR
if(jQuery.fn.marquee !== undefined) {
// marquee is loaded and available
}
Slightly better:
if ($.isFunction($.fn.marquee)) {
// ...
}
Maybe a little overkill, but this will ensure that it's at least a function.
Update January 2021:
Since jQuery.isFunction()
has been deprecated as of version 3.3, the easiest & recommended way to check this is now:
if (typeof $.fn.marquee === "function") {
// ...
}
Note that this may not be enough for certain very old browsers—see the $.isFunction()
implementation for details.