取消可拖动拖动

时间:2010-04-14 13:02:28

标签: jquery jquery-ui

我有一个draggable(jquery-ui)元素。如何根据某些约束取消当前的draggig?换句话说,我想约束这个可拖动元素的可能移动,但它更复杂,只基于轴或父(包含)。

我该怎么做?

2 个答案:

答案 0 :(得分:2)

尝试将拖动事件处理程序与 event.preventDefault();

一起使用

例如:

$(*selector*).draggable({
    drag: function(event) {
        if (*condition*) {
            event.preventDefault();
         }
     }
 });

答案 1 :(得分:1)

你无法取消它看起来的掉落。到目前为止,我只有解决所有可拖动的问题...

这是用于将确认对话框应用于drop,如下所示:

fruitbowl.draw()   // my routine which puts draggable elements into the DOM

$("trash").droppable({
    drop: function(ev, ui){
        $("#areyousure-dialog")
                .data('fruit',ui.draggable)  // passes the dragged el
                .dialog("open")
    }
}

$("#areyousure-dialog").dialog({
    buttons: {
        'Yes I\'m sure': function(){
              var fruit = $(this).data('fruit') 
              fruit.remove()
              fruitbowl.draw() 
              $(this).removeData('fruit').dialog('close')
         },
         Cancel: function(){
              fruitbowl.draw()
              $(this).removeData('fruit').dialog('close')
         }
 }

开放改进,不确定这是否是将被删除的元素传递给对话框的最佳方式,但对我有效。