0

jQuery.pep (ドラッグ アンド ドロップ jQuery プラグイン) を含む JavaScript ファイルがあります。このコードでプラグインを開始しています:

Drag.pep();

現在、無効化/停止する方法がわかりません。ファイルのコード セクションは次のとおりjquery.pep.jsです。私はあなたが答えるのを助けるかもしれないと思います:

$[pluginName] = {
  stopAll: function () {
    disable = true;
    return this;
  },
  startAll: function () {
    disable = false;
    return this;
  }
};

変数「pluginName」は「pep」です。完全な jQuery pep コード(github)は次のとおりです。

助けてください。

ありがとうございました!

4

1 に答える 1

3

おそらくそれを行う必要があります:

$.pep.stopAll(); // stops all peps

編集:

コードには、インスタンス オブジェクトで呼び出すことができる関数があります。

Pep.prototype.forceStop = function(){
  $(this.el).trigger( this._endTrigger );
};

インスタンスはここで構築され、data-attribute に保存されます。

// A really lightweight plugin wrapper around the constructor,
// preventing against multiple instantiations
$.fn[pluginName] = function ( options ) {
    return this.each(function () {
        if (!$.data(this, 'plugin_' + pluginName)) {
            $.data(this, 'plugin_' + pluginName, new Pep( this, options ));
        }
    });
};


$('your-selector').data('plugin_pep').forceStop();

私はそれをやろうとしましたが、それは forceStop メソッドを呼び出しましたが、それを行うことにはなりませんでした。調査したところ、現在進行中のアニメーションを停止することだと思います。

今できることは、必要なときにオプションで指定できるドラッグメソッドをオーバーライドし、アニメーションがトリガーされたときにすぐに強制的に停止することです。

私はそれほど好きではありませんが、今コードを見ているので、別の方法でそれを行う可能性はありません(ここにドキュメントがありません;-()

これはうまくいくはずです:

var myPep = $('your-selector').data('plugin_pep');
myPep.options.drag = function(ev, obj) {
  obj.forceStop();
};

edit2: 再度ドラッグ可能にしたい場合は、関数を空の関数で再度オーバーライドします。

myPep.options.drag = function() {};
于 2012-11-29T16:21:42.143 に答える