Sotiris
Sotiris

Reputation: 40066

Event in a function with jQuery

I know how to use events with jQuery in the classical way for example:

$("#moveArea").mousemove(function(event){
    $("#info").empty().append("pageX is: "+event.pageX);
});

Demo: http://jsfiddle.net/Ey7kP/

My question is how to pass the event in a function I have already create. I need something like the following, but I don't know how to achieve this

function cursorPos(event) {
  $("#info").empty().append("pageX is: "+event.pageX);      
}

$("#moveArea").mousemove(cursorPos(event));

Upvotes: 3

Views: 107

Answers (3)

Robert
Robert

Reputation: 8767

There's no need to pass the argument as it is defaulted to event. By placing the function name itself, cursorPos within your mousemove() event, you are capturing the necessary event thus rendering the need to pass the argument unnecessary.

function cursorPos(event){
     $("#info").empty().append("pageX is: "+event.pageX);
}

$("#moveArea").mousemove(cursorPos);

Working example: http://jsfiddle.net/8v4uE/

Upvotes: 1

ShankarSangoli
ShankarSangoli

Reputation: 69905

You dont have to pass any event variable. jQuery will pass it when it executes the handlers. Just say.

$("#moveArea").mousemove(cursorPos);

Upvotes: 1

Alex Turpin
Alex Turpin

Reputation: 47776

Just do

$("#moveArea").mousemove(cursorPos);

Since you're referring to the function and not calling it, there's no need for passing the arguments. jQuery will call it for you and pass event to it.

Upvotes: 8

Related Questions