2012-11-19 77 views
0

我有两个嵌套的div都可以droppable。根据内部div的内容,通过accept属性确定是否允许元素放置。通过这样做,我可以防止内部丢失的重复。JQuery嵌套拖放事件传播

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

所以,最大的问题是:我可以防止事件传播到家长可放开,如果孩子接受属性的值为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   
    } 
}); 
+0

'event.stopPropagation()'? – Jarry

+0

我在哪里可以参考事件实例?这是全球性的吗? – Remco

回答

0

解决它

我周围的事件传播的工作,我删除了接受功能,并添加了一个检查放下功能。如果该项目已经存在,什么也不做,并下降被恢复:)

也许不是最干净的方式,但它的工作原理。

事后相当简单..