user11
user11

Reputation: 331

How to find current executing event in javascript, jquery?

I have two very similar function that are called on different events i.e. 1st on 'onmousedown' and 2nd on 'onmouseup' . I am thinking to merge them into one to improve maintainability of my code. My problem is how could I find the current event inside switch statement ?

function update_button_to_idle(id){
var img = 'images/';

switch(id){
    case 'abc1':        
        img += 'enter1.png';
        break;  
    case 'abc2':    
    case 'abc3':
                img += 'play1.png';
        break;
   }
    $('#' + id + ' img').attr('src', img);
}

function update_button_to_active(id){
var img = 'images/';

switch(id){
    case 'abc1':        
        img += 'enter2.png';
        break;  
    case 'abc2':    
    case 'abc3':
                img += 'play2.png';
        break;
   }
    $('#' + id + ' img').attr('src', img);
}

Upvotes: 0

Views: 208

Answers (2)

Barmar
Barmar

Reputation: 780871

Instead of using onXXX attributes, bind your handlers using jQuery:

$("selector").on("mousedown mouseup", function(event) {
    update_button(this.id, event.type);
}

Then combine your functions into one update_button() function that takes two arguments.

Upvotes: 4

AtlanteanTec
AtlanteanTec

Reputation: 93

Depending on how the event is registered - if you pass in the event to the function you can identify it by calling the event.type. For example:

function (event) {
   if (event.type == "mousedown") {

   }

}

Without knowing more about how the event is triggered, its hard to give you a complete answer.

Upvotes: 0

Related Questions