具有不同 z 索引的重复元素上的重复事件 angular 第 3 方库
Duplicated Events on duplicated elements with different z-indexes angular 3rd Party library
我在 angular 项目的 ionic 中使用第 3 方库 (angular-draggable-droppable)。作为 ionic 缓存页面,angular 组件保留在 Dom 中,但具有较低的 z-index 值。看起来,当同一页面具有不同的 z-index 时,onDrop 事件被触发两次,每个元素触发一次,因为它们都在 dom 中。
我的问题是:
- 当使用第 3 方库时,我是否需要确保从 dom 中正确删除事件侦听器。
- 我该如何做到这一点(removing/disabling 缓存页面的所有事件侦听器)。
- 对于类似的情况有什么建议吗(我有一个我不喜欢的解决方法,很快就会在页面中有一个标志(活动),我在挂钩 IonicDidLeave 和每个事件中都将其设置为 false -handler 我检查它是否处于活动状态,然后进行预期的处理)。
- 我是否需要找到另一个库来处理这种情况?
当 DOM 元素作为现代浏览器垃圾回收过程的一部分被垃圾回收时,事件处理程序将被删除和清理。在您的情况下,由于离子缓存组件而不是删除,您需要通过 removeListener
javascript 方法手动删除。
我在 angular 项目的 ionic 中使用第 3 方库 (angular-draggable-droppable)。作为 ionic 缓存页面,angular 组件保留在 Dom 中,但具有较低的 z-index 值。看起来,当同一页面具有不同的 z-index 时,onDrop 事件被触发两次,每个元素触发一次,因为它们都在 dom 中。 我的问题是:
- 当使用第 3 方库时,我是否需要确保从 dom 中正确删除事件侦听器。
- 我该如何做到这一点(removing/disabling 缓存页面的所有事件侦听器)。
- 对于类似的情况有什么建议吗(我有一个我不喜欢的解决方法,很快就会在页面中有一个标志(活动),我在挂钩 IonicDidLeave 和每个事件中都将其设置为 false -handler 我检查它是否处于活动状态,然后进行预期的处理)。
- 我是否需要找到另一个库来处理这种情况?
当 DOM 元素作为现代浏览器垃圾回收过程的一部分被垃圾回收时,事件处理程序将被删除和清理。在您的情况下,由于离子缓存组件而不是删除,您需要通过 removeListener
javascript 方法手动删除。