0

我在这里有一个 jsfiddle - http://jsfiddle.net/xVvZB/1/ - 有两个重叠的米色框,它们是可放置的,一个红色的盒子可以放在米色盒子上。即使我在米色 dropOps 中设置了“贪婪”:

var beige_dropOps = {    
    drop : beigeDrop,       
    accept : '#redBox',     
    greedy : true
};

当 redBox 落在他们身上时,我会收到两次对 drop 处理程序的调用,每个米色框一个。因此,正如我所期望的 greedy = true 那样,顶部框似乎没有捕获 drop 事件。通过打开 Firebug 并观察 beigeDrop() 中的调试器行被调用两次,您可以看到这两个中断,一次使用 this=box1,一次使用 this=box2。

有谁知道发生了什么?

谢谢

4

1 回答 1

2

贪心会影响父子关系,而不是兄弟关系。

例如看这个小提琴

基本上,

greedy:true

阻止事件冒泡到父元素。在您的示例小提琴中,这两个元素是兄弟元素,因此该函数被触发两次。在我的示例小提琴中,框 2 是框 1 的子项,因此只有框 2 触发该功能。

于 2013-08-05T21:27:02.360 回答