web-dev-qa-db-ja.com

jQueryプラグインと関数が存在することを確認する方法は?

一部のページにはプラグインがありますが、他の一部のページにはプラグインが必要ないため、スクリプトファイルを参照しませんでした。

プラグイン関数を使用する前に存在するかどうかを確認する方法。

私の場合、私はこのプラグインを使用しています:そして、私はこれを次のように使用します:

$('#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);
});

私が欲しいのは、このマーキー関数が存在するかどうかを呼び出す前にチェックを行うことです。

46
Amr Elgarhy
if ($.fn.Marquee) {
    // there is some jquery plugin named 'Marquee' on your page
}
125
Matt Ball

これもできます。 jQuery Marqueeの例を見てみましょう。

これは、jQueryのみを使用している場合に適しています。

if($().Marquee) {
    // Marquee is loaded and available
}

OR

if($.fn.Marquee !== undefined) {
    // Marquee is loaded and available
}

上記と似ていますが、他のJSフレームワークMootoolsなどを使用している場合は安全です。

if(jQuery().Marquee) {
    // Marquee is loaded and available
}

OR

if(jQuery.fn.Marquee !== undefined) {
    // Marquee is loaded and available
}
18
Madan Sapkota

やや良い:

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

多分少しやり過ぎかもしれませんが、これは少なくとも機能であることを保証します。

5
Noyo