Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 事件冒泡优势与事件捕获优势_Javascript_Event Bubbling - Fatal编程技术网

Javascript 事件冒泡优势与事件捕获优势

Javascript 事件冒泡优势与事件捕获优势,javascript,event-bubbling,Javascript,Event Bubbling,我遇到了一个关于“事件冒泡”的讨论,如这里所述。我不完全明白这一点 在操作DOM元素时,您能说什么时候使用事件冒泡以及什么时候使用事件捕获吗?何时必须使用事件捕获,何时必须使用事件冒泡 事件冒泡几乎总是被使用的,因为它对大多数用法都很方便。您几乎应该始终使用事件冒泡。无论如何,大多数事件只能是泡沫。此外,IE8等旧浏览器不支持隧道。事件只在这些版本中出现气泡 。然而,以我的经验,我从来没有依赖隧道。这就是为什么在大多数情况下(如果不是全部默认情况下),事件处理程序只忽略隧道部分,而只对冒泡事件

我遇到了一个关于“事件冒泡”的讨论,如这里所述。我不完全明白这一点


在操作DOM元素时,您能说什么时候使用事件冒泡以及什么时候使用事件捕获吗?何时必须使用事件捕获,何时必须使用事件冒泡

事件冒泡几乎总是被使用的,因为它对大多数用法都很方便。您几乎应该始终使用事件冒泡。无论如何,大多数事件只能是泡沫。此外,IE8等旧浏览器不支持隧道。事件只在这些版本中出现气泡


。然而,以我的经验,我从来没有依赖隧道。这就是为什么在大多数情况下(如果不是全部默认情况下),事件处理程序只忽略隧道部分,而只对冒泡事件做出反应

javascript中几乎没有必要的东西,在这种情况下我想不出任何必要的东西。对于90%的JS事件,如单击按钮,不涉及取消,使用哪种方法都无关紧要。如今,冒泡更为常见;从最具体到最不具体。对于委托事件和嵌套事件,使用捕获可能会稍微更有效,但因为currentTarget无论如何都是可用的,所以它不会制造或破坏任何东西……没有必要,只有特定情况下需要的东西。@RokoC.Buljan:“需要”难道不是“必须”的同义词吗?你能描述一种更适合抓捕的情况吗(我不能)?@dandavis想象在你回家的路上有一个大坏蛋(其他事件处理程序连接到一个讨厌的元素),你会走另一条路,对吗?