function entkeyboard(evt){
var evt=evt?evt:(window.event?window.event:null);
.........}
在输入框上onkeydown=entkeyboard(event),当焦点在输入框时开始监听按哪个键盘,但是发现焦点离开后还在监听,我想焦点离开输入框停止监听键盘,怎么做?怎么停止这个监听函数?谢谢

解决方案 »

  1.   

    不可能的 你既然给输入框加了onkeydown事件 其失去焦点后是不会再出发onkeydown的
    这和blur本来没有关系  还是得看下你的代码  如果确实是没有什么问题再走最后一招棋 在onblur事件中移除onkeydown事件 
    先晒下你的代码吧~~~
      

  2.   

    怎么移除?函数entkeyboard=null这样可以吗?或者怎么写?
      

  3.   

    //写一个移除事件的函数 要考虑兼容多浏览器 如下:
    function removeEvent(oTarget,sEventType,funName){
       if(oTarget.removeEventListener){
         oTarget.removeEventListener(sEventType,funName, false);
       }else if(oTarget.detachEvent){
          oTarget.detachEvent("on"+sEventType,funName);
     }else{
          oTarget["on"+sEventType]=null;
     }
    };
    //删除掉
    var targetObj = document.getElementById('输入框的id');
    removeEvent(targetObj,'keydown',entkeyboard);
      

  4.   

    没了焦点肯定不会触发keydown事件的,是不是其他input触发了
      

  5.   

    很好奇,失去焦点怎么可能触发keydown事件???