0

我很难找到有关在 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");

......那么它就行不通了。所以问题是;传递参数时是否总是必须创建该函数,还是有更有效的方法?

4

2 回答 2

1

当你做两件不同的事情时它不起作用

工作的函数是一个属性赋值,当事件发生时属性(函数)被调用

第二个是调用,因为您将函数的结果分配给在 keydown 上调用的属性,该属性不起作用。

请注意,大多数事件驱动函数将事件作为第一个参数接收(除其他参数外,检查arguments)。

因此,您必须将其包装在一个匿名函数中,或者至少提供一个与调用 keyup 事件的签名相匹配的函数

于 2013-04-01T07:21:52.100 回答
1

也许你在调用函数时弄乱了函数的声明。this.onkeyup=function(params){...} 只是一个声明,当你调用它时,使用“this.onkeyup(params);”。以这种方式编写函数的目的是保持 OO 风格。OO风格与js中的java或c#略有不同。

于 2013-04-01T07:29:47.330 回答