0

I have been trying to find out more about mouse events such as onmouseover, onmouseout and onmousemove but there is not much info. It seems these event handlers by default have a single argument, the event its self.

element.onmouseover = mouseoverFunction

function mouseoverFunction( event ) {
    // Do stuff here
}

However I want to be able to pass other arguments to into the function.

function mouseoverFunction( event, moreArgs ) {
    // Do stuff here
}

How do I pass the event argument and additional arguments to the function?

Also is it ok to pass more arguments into an event handler function?

1 Answer 1

6

You can make a higher-order function:

function mouseover(arg1, arg2) {
  return function(event) {
    // Do stuff here
  }
}

element.addEventListener('mouseover', mouseover(1, 2))
Sign up to request clarification or add additional context in comments.

3 Comments

I did look at that but saw it was not supported by IE8 and under
Look for an addEventListener polyfill, or use the onmouseover attribute as you were doing.
@elclanrs, I was looking forward to call & apply methods. Is this possible to do that using them. I couldn't pass in event into the function if I pass in other arguments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.