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.