javascript - 谷歌浏览器中按钮标签的子节点如何触发 onclick 事件?

标签 javascript html google-chrome button

情况:

  1. 使用 document.createElement 创建按钮对象
  2. 直接分配onclick事件,例如:button.onclick = showResult;
  3. 修改按钮 innerHtml/append img 节点(我都试过了),在里面放一个放大镜 png 图标。
  4. 定义 showResult 函数,它接收 evt 参数,然后尝试获取目标 tagName 属性,但是当您点击图标时,它返回“IMG”而不是“BUTTON”

这是片段:

td = document.createElement( 'td' );
btn = document.createElement( 'button' );
btn.type = "button";
btn.onclick = showResults;
btn.innerHTML = '<img src="../img/mag.png" />';
td.appendChild( btn );

函数

function showResults( evt ) {
    console.log( evt.target.src );
}

我使用这个条件解决了这个问题:

var btn = evt.target == 'BUTTON' ? evt.target : evt.target.parentNode;

但我真的不喜欢它,是否有解决方法或关于此行为的其他方法,您可以指点我一下?

最佳答案

希望对你有帮助

var btn = document.getElementById('btn');
btn.onclick = function(e) {
    clickedButton = e.currentTarget;
    console.log(clickedButton);
}​

检查示例 http://jsfiddle.net/Kohver/RD3Zg/

关于javascript - 谷歌浏览器中按钮标签的子节点如何触发 onclick 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13939689/

相关文章:

javascript - 类似于 Android 调试的 Firebug

javascript - 带有 JSON 数据的 D3 线,未渲染

javascript - 有什么方法可以在 chrome 扩展中初始化一次吗?

css - 在刷新之前,边栏在 Chrome 上显示不正确

javascript - 防止浏览器扩展注入(inject) Javascript 代码

javascript - 带有 3 个相互链接的选项的 JSP 下拉列表

html - 连接到服务器,没有获取任何可视表

jquery - 单击更改边距然后在第二次单击时恢复

python - Selenium Webdriver (ChromeDriver) - 给出未知错误 : Runtime.executionContextCreated 具有无效的“上下文错误”

javascript - 使用类和原型(prototype)编写 jQuery 插件