2011-07-17 30 views
2

我試圖觸發某些事情,當我按下退出鍵或單擊某個元素時。我試過使用..單擊或按鍵

if($('#some_id').click() || e.keyCode == 27) 
{ 
    alert('Click or esc'); 
} 

但是,這似乎並沒有工作,有什麼我可以使用?如果我做的每一個單獨喜歡..

$('#some_id').click(...); 

或..

if(e.keyCode == 27) 

它的工作原理沒有問題,但我更願意把它一起工作,以避免重複代碼。對不起,如果它是我愚蠢的東西,我錯過了,但真的想得到這個排序。

謝謝:)

回答

13

使用 .bind() .on()(在jQuery 1.7)通過在多個事件:

$("#some_id").on("click keyup", function (e) { 
    if (e.type == "click" || e.keyCode == 27) { 
     alert("click or esc"); 
    } 
}); 
2

您提到的代碼重複。爲什麼不單獨做,而把你要執行對他們倆的成函數的代碼:

$('#some_id').click(function() { 
    doStuff(); 
}); 

$('#some_id').keypress(function (e) { 
    if (e.keyCode == 27) doStuff(); 
}); 

function doStuff() { 
    alert('Click or esc'); 
}