function addValidEvent(item,event,func)
{
if (item.addEventListener)
{
item.addEventListener(event, func, false);
}
else
if (item.attachEvent)
{
item.attachEvent("on" + event, func);
} else {
//todo
}
}
我称之为
addValidEvent(element, "mouseover", inRadio(element));
inRadio这是其他功能,我需要在addValidEvent调用中注册这个用于调用inRadio。
如何正确传递函数如param?
答案 0 :(得分:4)
将其作为函数传递。现在你正在调用inRadio中的方法。这样做
addValidEvent(element, "mouseover", function() {inRadio(element); });
答案 1 :(得分:3)
调用函数的上下文是元素本身,因此您可以将函数引用(name)作为事件处理程序传递:
addValidEvent(element, "mouseover", inRadio);
或者您可以将函数调用包装在一个匿名函数中(当您希望对回调有更多控制权时,这可能会派上用场):
addValidEvent(element, "mouseover", function(){inRadio(element);});
答案 2 :(得分:2)
在您的代码中,您实际上正在调用该函数,并且该调用的返回值将作为thrid argumnent传递给addValidEvent
方法。
试试这个。
addValidEvent(element, "mouseover", inRadio);
作为旁注:由于jQuery被标记为这个问题,我建议你使用jQuery,这很简单。
$(element).mouseover(inRadio);
答案 3 :(得分:-1)
var a = function() {
// code here
}
然后用'a'
做你需要的但我更喜欢以前的答案:)