2016-03-08 84 views
1

在jQuery的API它規定爲什麼在返回時觸發點擊事件?

單擊事件這個確切的一系列事件之後才觸發:當指針在 元素中

  1. 鼠標按鈕被按下。
  2. 在元素內部指針爲 時釋放鼠標按鈕。

不過,我只是注意到,在Firefox 39,當我選擇輸入按鈕元素,然後按回車鍵或雄兵的事件也triggerd。這是爲什麼?還有其他事件觸發點擊事件嗎?請參考jFiddle。如果我用鼠標按下按鈕,它會按預期改變顏色。但是如果我選擇按鈕並按下回車或空格鍵,它也會改變顏色。

<style> 
div{ 
    width: 200px; 
    height: 200px; 
    background-color: green; 
} 

.red{ 
    background-color: red; 
} 
</style> 

<input type='button' class='button' value='change color'> 
<div></div> 

<script> 
$(document).ready(function(){ 
     $('.button').click(function(e){  
     $('div').toggleClass('red'); 
     }); 
}); 
</script> 
+1

無法在FF 39.0.3,OS X 10.11中複製。 – Oka

+3

可以在Firefox 44.0.2上覆制。當按鈕有焦點時,Enter和Space鍵都會產生一個'click'事件。我相信這是通過設計,因爲點擊這些鍵將激活按鈕,並且它允許將單個處理程序綁定到激活。 –

+0

@你需要在點擊回車之前選擇按鈕。 – Adam

回答

2

jQuery API文檔具有誤導性。它描述的過程是用鼠標或其他指針設備觸發click事件的唯一方式。 The W3C recommends當元素處於焦點併發生某些鍵盤輸入時,瀏覽器會觸發onclick事件。這個建議的原因是增加了可訪問性。

相關問題