Arbejdsglæde
Arbejdsglæde

Reputation: 14098

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 ?

Upvotes: 0

Views: 99

Answers (4)

CompanyDroneFromSector7G
CompanyDroneFromSector7G

Reputation: 4527

var a = function() {
    // code here
}

Then do what you need to with 'a'

But I prefer the previous answers :)

Upvotes: -1

ShankarSangoli
ShankarSangoli

Reputation: 69915

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);

Upvotes: 2

gion_13
gion_13

Reputation: 41533

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);});

Upvotes: 3

Senad Meškin
Senad Meškin

Reputation: 13756

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

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

Upvotes: 4

Related Questions