带有onclick事件的div中的按钮 - 如何在单击按钮时仅触发其中一个?

时间:2014-08-20 22:05:06

标签: javascript jquery html button onclick

我正在尝试用里面的按钮创建一个div,如下所示:

<div onclick="function()"><input onclick="otherfunction()" type="button"></div>

如果单击该按钮,则会触发两个事件,但我想只触发按钮事件。 我试图更改按钮的z-index以使其超过div,但这没有帮助。

有没有可能接近这个?

欣赏你的答案, 丹尼尔

P.S。:对于任何拼写错误或语法错误,这不是我的第一语言。

2 个答案:

答案 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 */
}

jsfiddle