我很难找到有关在 JavaScript 中传递事件参数的完全正确语法的详细信息。看来我总是必须创建一个函数才能从事件处理程序获取函数的参数......而且它看起来很奇怪而且没有必要。下面是示例代码:
function styleSet(id1,id2,styleType)
{
document.getElementById(id1).style[styleType] = document.getElementById(id2).value;
}
document.getElementById("pFamilyID").onkeyup = function(){styleSet("paraID","pFamilyID","fontFamily")};
该事件可以正常工作,但我创建了一个匿名函数来应用参数。如果我尝试传递如下参数:
element.onkeyup = styleSet("paraID","pFamilyID","fontFamily");
...那么它就不起作用了。所以问题是;当我传递参数时我总是必须创建该函数还是有更有效的方法?
最佳答案
当你做两件不同的事情时它不起作用
工作的函数是一个属性赋值,当事件发生时该属性(函数)被调用
第二个是调用,当您将函数的结果分配给在 keydown 上调用的属性时,该属性不起作用。
请注意,大多数事件驱动函数接收事件作为第一个参数(除其他参数外,请检查参数
)。
所以你必须将它包装在一个匿名函数中,或者至少提供一个与 keyup 事件调用的签名相匹配的函数
关于javascript - 我是否始终需要应用函数(匿名或其他方式)来为事件处理程序传递 JavaScript 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15739220/