我有一个draggable(jquery-ui)元素。如何根据某些约束取消当前的draggig?换句话说,我想约束这个可拖动元素的可能移动,但它更复杂,只基于轴或父(包含)。
我该怎么做?
答案 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')
}
}
开放改进,不确定这是否是将被删除的元素传递给对话框的最佳方式,但对我有效。