Javascript DOM Onclick 事件触发单个元素

标签 javascript html events onclick

基本上我得到了一个页面,代码:

<body>
    <div onclick="alert('You clicked ' + this.tagName)">
       <h1 onclick="alert('You Clicked ' + this.tagName)">Click Me</h1>
    </div>
</body>

这不是我的确切脚本,但我出于演示目的重新构建了它,当我单击 H1 时,它会像应有的那样发出警报,但当我关闭警报框时,DIV > 出现了,我尝试了另一种方法来解决它

document.addEventListener('click' , function(e){
     var target = e.target || e.srcElement;
     alert('You Clicked ' + target.tagName);
});

这不适用于页面上的某些元素,因为一个奇怪的原因是页面上的所有元素,我是否遗漏了一些东西?

最佳答案

这是因为在最深的可能元素上触发事件后,它会按嵌套顺序在父元素上触发

您需要停止您案例中的事件传播

 <body>
        <div onclick="alert('You clicked ' + this.tagName)">
           <h1 onclick="alert('You Clicked ' + this.tagName);event.stopPropagation();">Click Me</h1>
            xcxc
        </div>
    </body>

这里是 fiddle : http://jsfiddle.net/9f8mfpvq/1/

关于Javascript DOM Onclick 事件触发单个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32520158/

相关文章:

javascript - HTML:表单 POST 选择返回选项文本

php - 如何轻松循环遍历 MySQL 结果?

node.js - 如果新邮件通过 IMAP 到达 node.js,则获取通知

events - 处理来自 WinHttpRequest 的事件

javascript - 如何在数组中插入一些东西?

javascript - 设置div为背景

html - pdo 在服务器上插入清理 html,而不是在本地

Excel 应用程序事件 : How to automatically reset WithEvents variable after a runtime error?

用于屏幕方向的 Javascript 或 jquery 代码

javascript - 如何使用 onclick 从不同的卡激活 Sencha Touch 中的特定卡