4

ユーザーがアイテムをバスケットにドラッグアンドドロップできるインタラクティブなバスケットがあります。ただし、同じアイテムをバスケットに 2 回入れることはできません (ただし、色あせていても表示されたままです) draggable

私はこれをやってみました:

$("#product_badges li:not(.on)").draggable({
    // Options here
});

ただし、これはプロパティを開始するだけなので、クラスをdraggable()追加したとしても、要素はドラッグ可能です。ondropped

draggableしたがって、次のようなプロパティのインスタンスをいくつか持たないと、これを達成する方法がわかりません。

$("#product_badges li:not(.on)").each(function(){
    $(this).draggable({
        // Options here
    }
});

上記の方法を使用すると、個人を呼び出してproduct_badgeドラッグを無効にすることができます。

これは、アイテムがバスケットに配置された (ドロップされた) 場合にのみ呼び出されます。

$('.item',$('#product_badges')).draggable('disable');

これを達成するためのより良い方法はありますか?特定のクラスがない場合にのみ、HTML 要素をドラッグ可能に設定できますか?

アップデート

ここで例を参照してください: http://jsfiddle.net/mB6GK/2/

4

2 に答える 2

6

プロパティを使用しcancelます。

$("#product_badges li").draggable({ cancel: ".no" })

フィドル:

http://jsfiddle.net/sGguz/

于 2013-07-08T19:56:50.947 に答える
0

開始イベントを使用できます。

$("#container").draggable({ 
      start: function( event, ui ) 
       { return !$(ui.helper).hasClass('nodrop'); }});

http://jsfiddle.net/mB6GK/4/

于 2013-07-08T19:56:18.293 に答える