Javascript addEventListener找到了什么标记
我将Javascript事件侦听器添加到一些html标记中。我必须对不同的标签进行相同的处理。最好使用一个公共函数 (1) 是否有方法将变量传递给传递给addEventListener的函数Javascript addEventListener找到了什么标记,javascript,html,addeventlistener,Javascript,Html,Addeventlistener,我将Javascript事件侦听器添加到一些html标记中。我必须对不同的标签进行相同的处理。最好使用一个公共函数 (1) 是否有方法将变量传递给传递给addEventListener的函数 const theNode = document.querySelector( "div.action-bar:not(.usertip-mobile-action-bar) div.dropdown button.button-white"); theNode.addEventListener("
const theNode = document.querySelector(
"div.action-bar:not(.usertip-mobile-action-bar) div.dropdown button.button-white");
theNode.addEventListener("click",
processClickReply,
false);
(2) 在我的函数过程ClickReply中,“this”是指“theNode”吗 1:使用匿名函数:
theNode.addEventListener("click", function() { processClickReply(value) }, false);
2:是1:使用匿名函数:
theNode.addEventListener("click", function() { processClickReply(value) }, false);
2:是的
是否有方法将变量传递给传递给addEventListener的函数
是的,有两种方式:
1) 通过闭包(但请注意,此
现在是闭包中的节点
,但不在过程中单击回复
,因此您可能希望显式传递它-或者记住它在evt.target
中):
2) 通过绑定(我们可以显式地将this
设置为theNode
并将myVar
设置为第一个参数):
在我的函数过程ClickReply中,“this”是指“theNode”吗
在您的代码中,如果将processClickReply
声明为传统函数,则会发生这种情况。如果它被定义为箭头函数,则否
在这两种传递参数的方法中,您可以看到它们是如何破坏this
的自然绑定的,以及可以采取哪些对策来绕过它
还要注意的是,绑定和闭包会给您带来不同的行为:如果myVar
后来发生了更改,那么更改将反映在闭包代码中;但是绑定代码当时使用myVar
的值
是否有方法将变量传递给传递给addEventListener的函数
是的,有两种方式:
1) 通过闭包(但请注意,此
现在是闭包中的节点
,但不在过程中单击回复
,因此您可能希望显式传递它-或者记住它在evt.target
中):
2) 通过绑定(我们可以显式地将this
设置为theNode
并将myVar
设置为第一个参数):
在我的函数过程ClickReply中,“this”是指“theNode”吗
在您的代码中,如果将processClickReply
声明为传统函数,则会发生这种情况。如果它被定义为箭头函数,则否
在这两种传递参数的方法中,您可以看到它们是如何破坏this
的自然绑定的,以及可以采取哪些对策来绕过它
还要注意的是,绑定和闭包会给您带来不同的行为:如果myVar
后来发生了更改,那么更改将反映在闭包代码中;但是绑定代码当时使用myVar
的值
let myVar = 84;
theNode.addEventListener(
"click",
processClickReply.bind(theNode, myVar),
false
);