如何传递参数来添加事件列表侦听器函数?
2022-08-29 23:19:42
情况有点像——
var someVar = some_other_function();
someObj.addEventListener("click", function(){
some_function(someVar);
}, false);
问题在于 的值在 的侦听器函数中不可见,在 听器函数中,它可能被视为一个新变量。someVaraddEventListener
情况有点像——
var someVar = some_other_function();
someObj.addEventListener("click", function(){
some_function(someVar);
}, false);
问题在于 的值在 的侦听器函数中不可见,在 听器函数中,它可能被视为一个新变量。someVaraddEventListener
为什么不直接从事件的目标属性中获取参数呢?
例:
const someInput = document.querySelector('button');
someInput.addEventListener('click', myFunc, false);
someInput.myParam = 'This is my parameter';
function myFunc(evt)
{
window.alert(evt.currentTarget.myParam);
}
<button class="input">Show parameter</button>
JavaScript是一种面向原型的语言,记住!
您编写的代码绝对没有问题。两者都应该是可访问的,以防它们在匿名上下文中可用some_functionsomeVar
function() { some_function(someVar); }
已创建。
检查警报是否为您提供了一直在查找的值,请确保在匿名函数的作用域中可以访问它(除非您有更多代码在调用旁边的同一变量上运行someVaraddEventListener)
var someVar;
someVar = some_other_function();
alert(someVar);
someObj.addEventListener("click", function(){
some_function(someVar);
}, false);