0

我需要使单击事件和右箭头产生相同的事件

所以代替这个重复的代码

$('#foo').on('click',function() {
    //do something
});

$(document).keydown(function(e){
   if (e.keyCode == 39) {
    //do the same thing above
   }
});

我该怎么做?

谢谢你 :)

4

3 回答 3

3

都调用相同的函数,或者在 keydown 中你可以做

$('#foo').trigger('click');
于 2013-05-19T02:28:23.187 回答
3

使它们都触发相同的功能。

$('#foo').on('click', CoolFunction);

$(document).keydown(function(e){
   if (e.keyCode == 39) {
    CoolFunction();
   }
});

function CoolFunction() {
  //same thing
}
于 2013-05-19T02:28:50.200 回答
1

使用内置的 javascript,因此两者具有相同的上下文。不要使用触发器,它有副作用。

$('#foo').on('click', commonFn);

$(document).keydown(function(){
   if (e.keyCode == 39) {
    commonFn.apply(this,arguments);
   }
});

function commonFn() {
  //same thing
}
于 2013-05-19T03:21:50.170 回答