How to check jQuery plugin and functions exists?

2019-01-21 22:09发布

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.

3条回答
Melony?
2楼-- · 2019-01-21 22:09

Slightly better:

if ($.isFunction($.fn.marquee)) {
    // ...
}

Maybe a little overkill, but this will ensure that it's at least a function.

查看更多
家丑人穷心不美
3楼-- · 2019-01-21 22:18
if ($.fn.marquee) {
    // there is some jquery plugin named 'marquee' on your page
}
查看更多
再贱就再见
4楼-- · 2019-01-21 22:19

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
}
查看更多
登录 后发表回答