【发布时间】:2014-02-21 16:43:38
【问题描述】:
开始当元素有不同的父元素时贪婪不会运行,并且这个元素是叠加的。像这样:
<div id="one">
<div class="icone draggable"></div>
<div id="background" class="droppable">
<div id="grey" class="droppable"></div>
<div id="red" class="droppable"></div>
</div>
</div>
<div id="two">
<div id="yellow" class="droppable"></div>
</div>
如果我将 .icone 从 #red 放到 #yellow (#yellow 在 #background),我有两个这样的事件(drop 事件):
start
drop in background (<= Bad event)
drop in yellow
但是,如果我将 .icone 从 #yellow 放到 #red,它会起作用,我只有 一个事件:
start
drop in red
#yellow 没有停止事件传播,#red 有正确的反应。
如果我将 .icone 拖到 #yellow 中,我会得到三个事件而不是一个(在我的原始代码中,我可以设置 .icone 的位置em> 当我拖动它时):
start
drop in background (<= Bad event)
drop in yellow (<= Bad event)
drag in yellow
请参阅 my example code,如何停止向 #yellow 传播事件?
#red和#yellow可以这样叠加second example code。
我尝试了在 stackoverflow 上提出的不同解决方案,其中包含禁用其他可丢弃事件的溢出/输出事件。但是如果我使用这个解决方案,我不能将 .icone 退出到 #yellow。
谢谢。
(在此处查看解决方案: http://jsbin.com/mubenaze/21/edit)
【问题讨论】:
-
所以如果我将绿色方块从黄色拖到蓝色背景,它不应该接受吗?
-
它应该接受它,但是如果我将绿色方块从
red放到yellow,我必须只有一个事件(观察console.log)。 -
因此不应发生额外的“背景下降”
-
但关键是红色有一个“正确的反应”,因为在 html 代码中黄色不在背景中。另一方面,当您将某些东西放入红色内时,您会同时释放红色和背景内的绿色方块。
-
别在意我的最后评论;)我明白了
标签: javascript jquery jquery-ui jquery-ui-droppable