简体   繁体   中英

Javascript function as parameter to other function

function addValidEvent(item,event,func)
{
    if (item.addEventListener) 
    {
        item.addEventListener(event, func, false);        
    }
    else 
    if (item.attachEvent) 
    {
        item.attachEvent("on" + event, func);
    } else {
       //todo
    }
}

I call it like

addValidEvent(element, "mouseover", inRadio(element));

inRadio this is other function, I need to register this with out call a inRadio in addValidEvent call.

How to correct pass the function like param ?

pass it as function. Now you are calling method inRadio. Do it like this

addValidEvent(element, "mouseover", function() {inRadio(element); });

The context on which your function is called is the element itself, so you could pass the function reference(name) as the event handler:

addValidEvent(element, "mouseover", inRadio);

or you can wrap your function call in an anonymous function(this might come in handy when you want to have more control over the callback) :

addValidEvent(element, "mouseover", function(){inRadio(element);});

In your code you are actually calling the function and the return value of that call is being passed as thrid argumnent to addValidEvent method.

Try this.

addValidEvent(element, "mouseover", inRadio);

As a side note: Since jQuery is tagged to this question I would suggest you to use jQuery for this which is so simple.

$(element).mouseover(inRadio);
var a = function() {
    // code here
}

Then do what you need to with 'a'

But I prefer the previous answers :)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM