我有一个事件监听器的父div和一个按钮使用相同的功能。而父div的一个,我只希望它去我的函数,如果父区域是点击,而不是它的孩子。这是我目前所做的。
btn.addEventLister("click", myFunction);
div.addEventListener("click", function (e) {
if(e.currentTarget === e.target){
myFunction();
}
});
function myFunction() {
var type = this.getAttribute('data-type');
// do something here
}
btn监听器工作,但不知为何div监听器不工作。不知何故,它好像没有识别 "this"。有什么办法可以解决这个问题吗?
你需要明确地传递按钮......例如,用
myFunction.call(btn);
这段代码基本上调用了函数设置 this
到 btn