2016-03-08 104 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事件。这个建议的原因是增加了可访问性。

相关问题