6

$('div.something').sortable(options)正常に動作しますが、後に壊れ$('div.something').unbind();ます。再実行$('div.something').sortable(options);または実行$('div.something').sortable('refresh');を試みて$('div.something').unbind();も効果はありません。

$ .unbindを使用して、プラグインが適用されている要素からイベントを削除することでプラグインを非アクティブ化/非開始化しますが、この手法は$.sortableを壊すという悪影響を及ぼします。ソート可能を再アクティブ化する方法についてのアイデアはありますか?

最新バージョンのjQueryとjQueryUIを使用しています。

4

2 に答える 2

9

呼び出す.sortable('destroy')前にを呼び出す.unbind()と、要素から並べ替え可能な機能が完全に削除されます。

これにより、へのやや危険な呼び出しを実行する前に適切なティアダウンが保証.unbind()され、要素上のすべてのバインドされたハンドラーが削除されます。次に、並べ替え可能な機能を再初期化できます。

// Initialization of the sortable feature
$('div.something').sortable(options);
...
// Remove the sortable feature to prevent bad state caused by unbinding all
$('div.something').sortable('destroy');
// Unbind all event handlers!
$('div.something').unbind();
...
// Re-initialize the sortable feature
$('div.something').sortable(options);
于 2013-03-17T05:06:42.650 に答える
7

ソート可能なプラグインを非アクティブ化する場合は、destroyメソッドを使用することをお勧めします

$('div.something').sortable(options)//Activate
....
$('div.something').sortable('destroy')//Remove the plugin functionality
....
$('div.something').sortable(options)//Reactivate

デモ:フィドル

于 2013-03-17T04:00:21.717 に答える