HTML5 drop 事件子阻止

Posted

技术标签:

【中文标题】HTML5 drop 事件子阻止【英文标题】:HTML5 drop event child prevented 【发布时间】:2011-04-18 08:36:53 【问题描述】:

我使用 html5 D&D。我有一个“父”放置区,例如“父母”。 在那个父母中,我放弃了我的孩子,例如“孩子”。每个被丢弃的孩子也成为被丢弃的区域,例如它可以接受 D&D 事件。

如果我将某些东西拖到“父”区域上,它会突出显示,“子”区域也是如此。 但我面临的问题是,“丢弃”事件是从“父”区域触发的。如果我将某些东西拖过“子”区域,“dragenter”、“dragleave”就可以正常工作。 但是“drop”事件不会触发。相反,“父”区域会触发它。

我解决了这个问题,在那一刻从“父”区域取消绑定“drop”事件,但这不是解决方案。

我怎样才能以正常的方式修复它?

【问题讨论】:

【参考方案1】:

好的,我发现我必须使用

event.stopPropagation();
event.preventDefault();

在“drop”事件中。还要确保它不是通过 jQuery live 绑定的。

【讨论】:

以上是关于HTML5 drop 事件子阻止的主要内容,如果未能解决你的问题,请参考以下文章

如何防止子元素干扰 HTML5 拖放事件?

HTML5 drop 事件没有被触发。

原生 drag drop HTML5

HTML5 拖放事件 - dragLeave 在放置前触发

丢弃 child 会触发 parent 的“drop”事件侦听器。我想用特定于子的“drop”覆盖该事件侦听器

js怎么通过阻止父元素事件和所有子元素事件