Reputation: 12341
I know .on()
exists with jQuery and .bind()
should not be used in the future, considering that I have a version of jQuery greater than or equal to 1.7.
What I want to know is this: are there are any differences between attaching an anonymous function or named function to an event handler using .bind()
?
Example:
// Anonymous function
$(".warning").bind("click", function(){
alert("Hello");
});
// Named function
$(".warning").bind("click", foo);
function foo(){
alert("Hello");
}
Imagine that I have 100 div
's with the class warning
in my page. The function .bind()
will attach a new function to every handler with an anonymous function but will it be exactly the same with a named function in the very internal of JavaScript and jQuery?
Thank you.
Upvotes: 11
Views: 1889
Reputation: 1719
There won't be any noticeable performance difference.
One main difference is that with a named function you can also selectively unbind functions and not just all functions associated with an event type.
Of course, this can also help you avoid code duplication.
Upvotes: 10