0

我有两个可放置的嵌套 div。根据内部 div 的内容,通过 accept 属性确定是否允许删除元素。通过这样做,我可以防止内部 droppable 中的重复。

问题是,如果在内部 div 中将 accept 属性设置为 false,则事件会冒泡到父级。父母接受下降,这正是我不想要的。一个复杂的因素是接受函数的参数只包含删除的节点,我没有引用实际的事件对象,所以我无法停止传播:(

所以最大的问题是:如果子接受属性评估为假,我可以阻止事件传播到父可丢弃吗?

编码:

$(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          
    }
});
4

1 回答 1

0

解决了。

我解决了事件传播,我删除了接受函数并在 drop 函数中添加了一个检查。如果该项目已经存在,则什么也不做,并且该掉落被还原:)

也许不是最干净的方式,但它有效。

事后看来很简单。。

于 2012-12-15T13:46:51.087 回答