如何从事件侦听器的内部函数将此元素传递给另一个函数?
How to pass this element to another function from inside function of event listener?
我有一个父事件侦听器 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
我有一个父事件侦听器 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