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