我有两个嵌套的div都可以放置。根据内部div的内容,通过accept属性确定是否允许元素丢弃。通过这样做,我防止内部droppable重复。
问题是如果在内部div中将accept属性设置为false,则会将事件冒泡到父级。父母接受掉落,这正是我不想要的。一个复杂的因素是accept函数的参数只包含被删除的节点,我没有引用实际的事件对象所以我无法阻止传播:(
所以最大的问题是:如果子接受属性的计算结果为false,我可以阻止事件传播到父droppable吗?
代码:
$(node).droppable({
tolerance: "intersect",
accept: function(nodes) {
//if acceptPM evaluates to false the event is bubbled which I don't want
return acceptPM(nodes);
},
greedy: true,
activeClass: "ui-state-default",
hoverClass: "ui-state-hover",
drop: function(event, ui) {
//do something
}
});
答案 0 :(得分:0)
解决了它。
我处理了事件传播,我删除了accept函数并在drop函数中添加了一个检查。如果项目已经存在,则不执行任何操作,并且还原将丢弃:)
也许不是最干净的方式,但它有效。
事后很简单..