2011-11-21 19 views
27

私はたくさんの要素を持っています。いくつかはドラッグ可能で、いくつかはドロップ可能であり、いくつかは両方ともです。要素がドラッグ可能かドロップ可能かどうかをどのように検出できますか?ドラッグ可能な要素については要素が削除可能か、ドラッグ可能か、その他の「ble」かどうかをチェックする方法は?

+0

は、なぜあなたは 'droppable'または' draggable'をインスタンス化する際に、元のセレクタが使用され使用できません。 – zzzzBov

+0

@zzzzBov、私のコントロールはAJAXを使ってロードされているので、ドキュメント上で何が起こったのかわかりません。 –

+0

いくつかのコードを表示してください。あなたが何を言っているのか分かりません。 AJAX経由でHTMLを送信している場合、その要素がドラッグ可能であるか、またはドロップ可能であるかは重要です。 – zzzzBov

答えて

25

また、このように()jqueryのデータを使用することができます。..

if ($(elem).data('draggable')) { 
     alert("yes"); 
} 
else { 
     alert("no"); 
} 

if ($(elem).data('fooable')) { 
     alert("yes"); 
} 
else { 
     alert("no"); 
} 

をここでそれを参照してください:http://bootply.com/60153

+3

括弧を付けずにif/else文を実際に書かないようにしてください! – Mathletics

+0

したがって、jQueryはすべての '〜bles'を '.data'に登録しますか? –

+0

はい、jQueryはたくさんの内部的なものにdata()を使用しています - http://ejohn.org/apps/workshop/adv-talk/ - CSSクラスのチェックも実行可能ですが、どちらの方が良いでしょうかあなたのケース、またはパフォーマンスの観点から。 – ZimSystem

5

$(elem).is('.ui-draggable') 

たりできfilter、または単に$('.ui-draggable');を選択します。

ドロップ可能なため、あなたは.ui-droppableを使用し、サイズ変更が可能で、選択した項目が.ui-selecteeをあるが.ui-resizableは、選択は、コンテナの.ui-selectableでソート可能であることはコンテナの.ui-sortableです。

+0

何が良いですか? Cssクラスの 'data'チェックやチェック?なぜ? –

+0

これは本当に実装に依存します。クラスを削除するのは非常に簡単で、一部のデータを簡単に削除することもできます。私は、この質問が間違ったアプローチを使用しているという症状であると感じています。 – zzzzBov

14

これはまた

if ($("el").data('uiDraggable')){ //or uiDroppable 
    alert("draggable") 
} else { 
    alert("not draggable") 
} 

のjQuery 1.10.2で私のためにそれを作品引数なしで.data()メソッドを呼び出すことができます。

あなたがオブジェクトのプロパティを見ることができます

オブジェクト{$(匿名関数)(匿名関数)。。uiDraggable}のようなものを印刷する必要があり

if (Modernizr.draganddrop) { 
// use drag and drop 
} 
0

私はModernizrでしょうか?