之前在做項目時,寫了一個監聽使用者鍵盤按下 回車【Enter】按鍵時觸發的事件,代碼如下:
$(function() {
$('input:text:first').focus();
var $inp = $('input');
$inp.keypress(function(e) {
var key = e.which;
if (key == 13) {
$("#btnSend").click();
}
});
$("#btnSend").click(function() {
var pwd =$(this).value;// ①
});
問題在①這一行時出現bug,因為當使用者按下回車時【Enter】,jquery選擇器找不到this關鍵對象,尤其在ie6下,①之後的代碼就不能運作了,其他2個核心的浏覽器還勉強能繼續運作①下面的代碼,但是,解決辦法有:
1):不适用this關鍵字,以id選擇器,或樣式選擇器來代替$(this);
2):在①之前對this進行一個判斷,如:if($(this)==null){ $(this)=....;},來避免錯誤發生
本文轉自 tongling_zzu 51CTO部落格,原文連結:http://blog.51cto.com/tongling/1143885