我正在尝试用里面的按钮创建一个div,如下所示:
<div onclick="function()"><input onclick="otherfunction()" type="button"></div>
如果单击该按钮,则会触发两个事件,但我想只触发按钮事件。 我试图更改按钮的z-index以使其超过div,但这没有帮助。
有没有可能接近这个?
欣赏你的答案, 丹尼尔
P.S。:对于任何拼写错误或语法错误,这不是我的第一语言。
答案 0 :(得分:4)
需要使用'stopPropagation'停止冒泡。试试这个:
<script>
var test = function() {
alert(2);
event.stopPropagation();
};
</script>
<div onclick="alert(1)"><input onclick="test()" type="button"></div>
答案 1 :(得分:0)
您希望停止传播使用提供的事件对象。我正在通过标签名称进行选择以用于说明目的,但您也提供了ID。请注意,在版本9之前IE不支持eent.stopPropagation:
<div)>
<input type="button" />
</div>
document.getElementsByTagName('div')[0].onclick = function(e) {
alert('div clicked');
e.stopPropagation()
/* do something */
}
document.getElementsByTagName('input')[0].onclick = function(e) {
alert('button clicked');
e.stopPropagation()
/* do something */
}