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

时间:2016-03-08 15:06:17

标签: javascript jquery

在jQuery API中声明

  

点击事件仅在这一系列事件发生后触发:

     
      
  1. 指针在指针内时按下鼠标按钮   元件。
  2.   
  3. 指针指向时释放鼠标按钮   在元素内。
  4.   

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

以下是一个示例,请参阅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 个答案:

答案 0 :(得分:2)

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