2009-02-01 69 views
0

我有一個輸入框,並且已將模糊和按鍵事件綁定到輸入。但問題是當按鍵事件模糊事件也觸發。按鍵事件發生時,是否有辦法抑制模糊事件?JQuery事件抑制

感謝

+0

如果您發佈了一個代碼示例,它會有所幫助。我不認爲模糊應該從按鍵開始,除非您的按鍵處理程序實際上導致元素失去焦點。 – David 2009-02-01 01:32:08

回答

0

<script src="jquery-1.3.1.js" type="text/javascript"></script> 

<script type="text/javascript"> 

    $(document).ready(function() { 

     $("#inpt").blur(function(e) { 
      EventHandlerBlur(e); 
     }); 
     $("#inpt").keypress(function(e) { 
       EventHandlerKeyPress(e); 
      }); 

      $(document).keypress(function(e) { 
       EventHandlerKeyPress(e); 
      }); 


    }); 
</script> 

這裏是相同的行爲的代碼。實際上在進入輸入/或者甚至按下輸入框上的任何按鍵導致模糊事件在按鍵事件之前首先被觸發。

2

聽起來好像EventHandlerKeyPress()函數中的某個東西正在引起模糊。

1

我簡化了你的代碼,只是爲了測試,不能得出關於事件觸發順序的相同結論。 Firebug的控制檯顯示下面的代碼執行產生.keypress總是.blur之前存在的

<script> 

    $(document).ready(function() { 

     $("#inpt").blur(function(e) { 
      console.log(".blur"); 
     }); 

     $("#inpt").keypress(function(e) { 
      console.log(".keypress"); 
     }); 
    }); 

</script> 

究竟什麼是你想用.onchange完成,並.keypress綁定到相同的字段?如果你也發佈了你的事件處理器代碼,可能會有所幫助。

此外,您還有一個全局document.keypress綁定以及任何特定原因?