停止 JavaScript 事件传播是否被认为是“良好实践”——它是否对性能有任何好处?
我想知道停止传播是否有布局目的外部的好处,这样就不会意外触发多个事件。
这完全取决于 DOM 复杂性 以及触发的每个事件中采取的操作。
您会停止传播事件,主要不是因为复杂性,而是因为不发生不需要的操作。
例如:考虑这样一种情况,您有一个显示隐藏
div
,当您单击 div
时,它应该打开,如果您单击文档中的其他任何位置,它应该关闭。
因此,您可以将
onclick
事件处理程序连接到文档以及 div
。因此,当单击 div
时,您必须停止传播事件,以便不会调用文档单击处理程序。在这种情况下,您可以使用停止事件传播。
仅当程序逻辑有必要时,例如防止表单提交或触发另一个 DOM 元素的操作。除非你有一个非常复杂的 DOM 树,否则不会有任何严重的性能影响。