4

我有一个交互式购物篮,用户可以将项目拖放到购物篮中。但是,同一物品不能在篮子中放置两次(但它仍然可见,尽管已褪色),因此一旦它在篮子中,draggable必须禁用该属性。

我试过这样做:

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

但是,由于这只是启动draggable()属性,因此即使我确实将on类添加到它,元素仍然是可拖动的dropped

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 回答