50

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

プラグイン機能を使用する前に、プラグイン機能が存在するかどうかを確認する方法。

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

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

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

4

3 に答える 3

129
if ($.fn.marquee) {
    // there is some jquery plugin named 'marquee' on your page
}
于 2011-03-17T13:46:59.827 に答える
19

これを行うこともできます。jQueryマーキーの例を見てみましょう。

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

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

また

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

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

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

また

if(jQuery.fn.marquee !== undefined) {
    // marquee is loaded and available
}
于 2013-04-18T13:04:06.307 に答える
4

少し良い:

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

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

2021年1月の更新:

バージョン3.3で非推奨になっているためjQuery.isFunction()、これを確認する最も簡単で推奨される方法は次のとおりです。

if (typeof $.fn.marquee === "function") {
    // ...
}

特定の非常に古いブラウザでは、これでは不十分な場合があることに注意してください。詳細については、$.isFunction()実装を参照してください。

于 2013-09-03T17:44:56.197 に答える