我試圖將焦點設置爲一個按鈕,而用戶按下在文本框中輸入鍵。但它不起作用。我正在使用互聯網 Explorer 8瀏覽器。我錯過了什麼嗎?設置焦點在一個按鈕不起作用
$("input.Box").live('keydown', function(e) {
if (e.keyCode == 13) {
e.preventDefault();
$("#button").focus(); // Not working?
}
});
我試圖將焦點設置爲一個按鈕,而用戶按下在文本框中輸入鍵。但它不起作用。我正在使用互聯網 Explorer 8瀏覽器。我錯過了什麼嗎?設置焦點在一個按鈕不起作用
$("input.Box").live('keydown', function(e) {
if (e.keyCode == 13) {
e.preventDefault();
$("#button").focus(); // Not working?
}
});
微軟決定他們不喜歡e.keyCode
,而是有自己的語法,e.which
。
你必須同時檢查:
$("input.Box").live('keydown', function(e) {
var keyCode = (window.event) ? e.which : e.keyCode;
if (keyCode == 13)
e.preventDefault();
$("#button").focus(); // Not working?
}
});
的問題是,IE不能夠所以你需要補充的是進入live
功能時之間的小延遲足夠快地作出反應,而當.focus()
叫做。因此,使用e.which
與e.keyCode
如攪拌器建議應解決您的問題與
setTimeout(function() {
$('#button').focus();
}, 100);
這種替代
$("#button").focus();
,結合。
對我來說e.keyCode == 13似乎工作正常。 – Lamps
在嘗試設置焦點之前,確保DOM已準備好,元素已存在。
他不試圖將按鈕集中在文檔加載上。 –
對我來說e.keyCode == 13似乎工作正常.. – Lamps