我有两个非常相似的功能,在不同的事件上调用,即'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);
}
答案 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") {
}
}
如果不了解事件的触发方式,很难给出完整的答案。