按下带有html标签的html按钮时出现错误目标
Wrong target when pressing html button with html tags in it
我有四个按钮,想跟踪按下了哪个按钮。在其中一些中,我用HTML标记更改了innerHTML属性。然后我注意到,当按下按钮时,mouseEvent.target可能不是按钮,而是文本本身。只有当按下html标记修改按钮时才会发生这种情况。
以下是js代码的一部分:
for (var i = 0; i < 4; i++){
buttons[i].innerHTML = countries[index]["c"];
buttons[i].onclick = clickHandler;
}
buttons[correct_btn].innerHTML = "<some-tag>" + countries[target_id]["c"] + "</some-tag>";
function clickHandler(me){
console.log(me.target);
}
我希望我能清楚地描述这个问题。我可以在按钮中不使用html标签,但我仍然想知道是否有办法避免按钮文本成为目标。或者可能是我追踪按钮的方法从一开始就错了?
请改用currentTarget。来自MDN:
它总是引用事件处理程序已附加到的元素与event.target相反,后者标识事件发生
function clickHandler(me){
console.log(me.currentTarget);
}
这里有一把小提琴来演示上面的内容。
相关文章:
- HTML 表单目标到顶部框架
- html表单操作跨域目标iframe
- 当表单以 html 为目标并在 IE11 中操作另一个 html 时,它最终会打开两个页面
- 对 HTML 列表进行排序,然后对目标元素进行排序
- 使用jQuery将非唯一HTML元素作为目标
- 存储目标容器的HTML和CSS
- 按下带有html标签的html按钮时出现错误目标
- 目标是表的第二个子元素的内部html
- 目标主窗口从iframe在HTML中
- 更新最后一个目标内容可编辑'来自文本区域的s html
- jQuery:使用.html()或.append()添加目标元素
- HTML & lt; a>超链接目标在私有/隐身窗口
- 我的html代码是不工作的目标空白
- HTML表单.何时在目标属性中使用命名框架
- 使用angularjs控制器移除HTML中的目标属性
- 以IE10为目标,在html标签上添加一个IE10类
- 将HTML插入页面,目标是加载DOM后添加的DIV ID
- 如何在页面上显示两次时,没有任何唯一标识符的目标特定的html
- HTML表单目标使用jquery的新窗口
- 如何在目标页面中删除没有ID's或类名等的HTML元素