我看了一遍,无法完全理解我做错了什么。
我只是希望在点击孩子时不要触发父元素(更改不透明度)。
赞赏简单的答案!
谢谢
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(无效)
答案 0 :(得分:1)
这不会捕获事件。您将需要一个事件处理程序来执行此操作。因此,您需要重构以避免使用内联javascript
html更改
<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();
};
};
答案 1 :(得分:0)
在你的jsfiddle上clickBox
在onLoad中..在左侧使用“No Wrap in head”
你有getElementByTag
!使用getElementById
。