jQuery UIプラグインが要素にアタッチされているかどうかを確認するにはどうすればよいですか?たとえば、.sortableウィジェットをロードすると、その存在をどのように判断できますか?jQuery UIプラグインが要素にアタッチされているかどうかを確認するにはどうすればいいですか?
この質問の背後にある目的は、要素の並べ替えを可能にすることです。 .sortableが存在することを確認することで、.sortable( 'destroy')を呼び出して削除することができます。
jQuery UIプラグインが要素にアタッチされているかどうかを確認するにはどうすればよいですか?たとえば、.sortableウィジェットをロードすると、その存在をどのように判断できますか?jQuery UIプラグインが要素にアタッチされているかどうかを確認するにはどうすればいいですか?
この質問の背後にある目的は、要素の並べ替えを可能にすることです。 .sortableが存在することを確認することで、.sortable( 'destroy')を呼び出して削除することができます。
すべてのUIウィジェットは、要素のコンテナデータにtrueという名前を付けます。 jqueryuiはデータフィルタ式も追加します。
var $elem = $('div.sortable-container:data(sortable)');
if ($elem.length){
// $elem contains list of elements that have sortable widget attached
}
すべてのUIウィジェットには、クラスui-widget
が与えられています。通常、各ウィジェットはウィジェットクラスをメインエレメントに追加します。この場合、ソート可能なコンテナにui-sortable
が追加されているはずです。
グレート答え、ありがとうケビンを。 – Jay
誰もが後jqueryUIのバージョンでは、この解決策を探している場合は、ソート可能なプラグインのデータコンテナの名前がソート可能になりましuiSortableありません。 uは
var $elem = $('#sortable-container:data(uiSortable)');
を使用することができますし、まだjQueryのUI 1.8、特殊なセレクタare being added to Sizzle for each widgetので
var $elem = $('#sortable-container:not(:data(uiSortable))');
を初期化されていない要素を見つけるために、要素を見つけるためにjQueryui 1.10
すなわちを使用してイム。これらは:ui-widgetname
の形式です。
要素のソート可能なウィジェットの存在をチェックするために、あなたはそのため使用することができます。
if(element.is(':ui-sortable')) {
element.sortable('destroy');
}
簡潔でシンプル –
CSSスタイルが適用されているかどうかを確認するのは素晴らしいですが、これはもう少し明示的です。ありがとうCorey! – Jay
偉大な解決策、そして私はそれを見つけるためにそれがしたように多くのウェブを精査するのに驚いた。これが起こったことがより明白になるだろうが、私は持っているだろうか? –