Binding a single event handler to multiple events with jQuery

I have the following div with different functions for onblur, onmousedown, onmouseup, and onfocus.. I want to minimize the code and have only one function call inside div for all the function states. I want to do this with jquery So in other words. I want to create a function called functionAll and put all of function1 to function 4 with it's mouse state inside, then just use functionAll inside the Div. How can I do something like this?

<div contentEditable="true"
     onblur="function1();"
     onmousedown="return function2(event);"
     onmouseup="function3();"
     onfocus="function4();">
    test test
</div>

Answers


You should put an id on the div, say "test", then:

$('#test').bind('blur mousedown mouseup focus', function (e) {
    // This is your combined function
    // Inside here you can use e.type to find out whether it was a
    // "blur", "mousedown", "mouseup", etc...
});

The HTML will look like:

<div id="test" contentEditable="true">
    test test
</div>

Need Your Help

Dynamically defined setter methods using define_method?

ruby-on-rails ruby activerecord metaprogramming

I use a lot of iterations to define convenience methods in my models, stuff like:

Can't use forEach with Filelist

javascript file

I'm trying to loop through a Filelist: