如何在 Javascript 中停止传播
How to stopPropagation in Javascript
本文关键字:传播 Javascript 更新时间:2023-09-26
我看了一遍,不能完全明白我做错了什么。
我只希望父元素在单击子元素时不要触发(更改不透明度)。
简单的答案值得赞赏!
谢谢
HTML
<div id="not-clicker">
<div id="clicker" onClick="clickBox();">
</div>
</div>
JAVASCRIPT
function clickBox(event) {
document.getElementById('clicker').style.backgroundColor = 'green';
event.stopPropagation();
};
JSfiddle (无法正常工作)
这不会捕获事件。您将需要一个事件处理程序来执行此操作。因此,您需要重构以避免使用内联 JavaScript
网页更改
<div id="clicker"></div>
JS更改
document.getElementById('clicker').onclick = function(event){
document.getElementById('clicker').style.backgroundColor = 'green';
//this.style.backgroundColor = 'green';note you can also use this to reference the element now
event.stopPropagation();
};
编辑
更多信息
请注意,由于这不再内联,因此脚本必须在元素位于 DOM 中之后运行。为此,您需要将脚本放在页面的较低位置,或等待窗口的加载事件触发。这是一个例子
window.onload = function(){//this callback executes when the window is fully loaded
//now we can guarantee all DOM elements are present
document.getElementById('clicker').onclick = function(event){
this.style.backgroundColor = 'green';
event.stopPropagation();
};
};
在你的jsfiddle上,clickBox
在onLoad中..使用左侧的"No Wrap in head"
你有getElementByTag
!使用 getElementById
.
相关文章:
- JavaScript 中的符号传播右移和零填充右移之间的区别
- 浏览器是否在选项卡之间传播javascript变量
- 如何在 Javascript 中停止传播
- 如何在 javascript 中传播嵌套异步函数的返回值
- 无法为(稍后的)javascript生成的元素传播事件侦听器(提交表单)
- JavaScript + 事件传播
- Javascript Dispatch 鼠标事件不会传播到目标子级
- 手动触发的JavaScript事件未针对iFrame上下文内的元素传播
- 如何停止javascript中嵌套try/catch错误的传播
- Javascript 事件传播未按预期工作
- 如何使用javascript阻止滚动事件的传播
- Javascript阻止事件通过元素传播
- 从子对象传播的 JavaScript 事件
- 如何在将javascript字符串设置为从Django变量传播的值时转义引号
- JavaScript方法:Can't停止传播
- JavaScript基础设施,使得传播的错误不会;不要迷路
- 管理Javascript文件中的事件传播
- javascript中的自我传播蠕虫
- Javascript点击事件触发两次,已经停止传播
- 如何防止JavaScript中的事件传播