如何在javascript,jquery中找到当前执行的事件?

时间:2013-06-20 04:09:48

标签: javascript jquery

我有两个非常相似的功能,在不同的事件上调用,即'onmousedown'上的第1个和'onmouseup'上的第2个。我想将它们合并为一个,以提高我的代码的可维护性。我的问题是如何在switch语句中找到当前事件?

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);
}

2 个答案:

答案 0 :(得分:4)

不使用onXXX属性,而是使用jQuery绑定处理程序:

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

然后将您的函数组合成一个带有两个参数的update_button()函数。

答案 1 :(得分:0)

根据事件的注册方式 - 如果将事件传递给函数,则可以通过调用event.type来识别它。例如:

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

   }

}

如果不了解事件的触发方式,很难给出完整的答案。