之前在做项目时,写了一个监听用户键盘按下 回车【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)=....;},来避免错误发生