为什么返回时会触发click事件?

在jQuery API中它说明了

只有在这一系列事件发生后才会触发click事件:

  1. 当指针位于元素内部时,按下鼠标按钮。
  2. 指针位于元素内时释放鼠标按钮。

但是,我刚才注意到在Firefox 39中,当我选择一个输入按钮元素然后按return或spacekey时,也会触发该事件。 这是为什么? 是否还有其他事件触发点击事件?

这是一个例子,请参阅jFiddle 。 如果我用鼠标按下按钮,它会按预期更改颜色。 但是如果我选择按钮并按回车键或空格键,它也会改变颜色。

 div{ width: 200px; height: 200px; background-color: green; } .red{ background-color: red; }   
$(document).ready(function(){ $('.button').click(function(e){ $('div').toggleClass('red'); }); });

jQuery API文档具有误导性。 它描述的过程是使用鼠标或其他指针设备触发click事件的唯一方法。 W3C建议浏览器在元素处于焦点并且发生某些键盘输入时触发onclick事件。 这一建议的原因是增加了可访问性。