Javascript函数作为其他函数的参数

时间:2012-02-14 15:25:07

标签: javascript jquery

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?

4 个答案:

答案 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'

做你需要的

但我更喜欢以前的答案:)