2013-05-19 21 views
0

我需要點擊事件和右箭頭做出同樣的事件jQuery的:如何使鍵盤事件做同樣的單擊事件一起

所以不是這種重複的代碼

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

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

我應該如何做它?

謝謝:)

+2

他們都分配到相同的功能 –

回答

3

讓他們都觸發相同的功能。

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

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

function CoolFunction() { 
    //same thing 
} 
+1

+1,因爲這是工作,但你失去了'this'參考,所以我會用'觸發器()' –

3

兼得調用同一個函數,或者在的keydown,你可以做

$('#foo').trigger('click'); 
1

使用內置的JavaScript,所以兩者都有相同的上下文。不要使用觸發器,它有副作用。

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

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

function commonFn() { 
    //same thing 
}