我想以更好,最優化的方式編寫它。我想也許我應該使用jQuery的每個功能,但不知道如何寫它。基本上有7個按鈕的列表,並且NUM鍵和常規數字鍵都連接到相關按鈕。 的HTML是這裏http://jsfiddle.net/wAwed/1/有沒有一種方法來優化此鍵碼列表功能?
$(document).keydown(function (e) {
if ($(e.target).is('input') || $(".answerbtns").length != 0) { return }
/* keyboard 1 */
else if (e.keyCode == 97 || e.keyCode == 49) {
$("#.ctl00_ContentPlaceHolder1_rptrQuizQuestions_ctl00_lbAnswers")[0].click();
e.stopPropagation();
return false;
}
/* keyboard 2 */
if (e.keyCode == 98 || e.keyCode == 50) {
$("#ctl00_ContentPlaceHolder1_rptrQuizQuestions_ctl01_lbAnswers")[0].click();
e.stopPropagation();
return false;
}
/* keyboard 3 */
if (e.keyCode == 99 || e.keyCode == 51) {
$("#ctl00_ContentPlaceHolder1_rptrQuizQuestions_ctl02_lbAnswers")[0].click();
e.stopPropagation();
return false;
}
/* keyboard 4 */
if (e.keyCode == 100 || e.keyCode == 52) {
$("#ctl00_ContentPlaceHolder1_rptrQuizQuestions_ctl03_lbAnswers")[0].click();
e.stopPropagation();
return false;
}
/* keyboard 5 */
if (e.keyCode == 101 || e.keyCode == 53) {
$("#ctl00_ContentPlaceHolder1_rptrQuizQuestions_ctl04_lbAnswers")[0].click();
e.stopPropagation();
return false;
}
/* keyboard 6 */
if (e.keyCode == 102 || e.keyCode == 54) {
$("#ctl00_ContentPlaceHolder1_rptrQuizQuestions_ctl05_lbAnswers")[0].click();
e.stopPropagation();
return false;
}
/* keyboard 7 */
if (e.keyCode == 103 || e.keyCode == 55) {
$("#ctl00_ContentPlaceHolder1_rptrQuizQuestions_ctl06_lbAnswers")[0].click();
e.stopPropagation();
return false;
}
});
當然,創建一個將鍵碼鏈接到目標元素的鍵碼映射,然後使用一個循環。或者使用對象鍵/值對。 –
也許[代碼評論](http://codereview.stackexchange.com/)是一個更好的地方。 –