我有一小段代码用于在按下checked
时切换复选框的属性。space bar
$(document).on('keydown', function(e) {
if (e.which === 32) {
e.preventDefault();
$('#example').prop('checked', function() {
return !this.checked;
});
}
});
以上在 Chrome v30 和 IE10 中可以正常工作,但在 Firefox v24 中不行。当您单击复选框,然后使用空格键切换它时会出现问题,它会暂时选中它,然后取消选中它,反之亦然。
我认为这个问题与click
使用 Firefox 时触发事件有关keydown()
,尽管使用e.preventDefault()
(这会阻止点击事件在 Chrome 和 IE 中触发)。
我尝试使用相同的代码,绑定keyup
事件。这解决了 Firefox 中的问题,但随后将同样的问题引入了 IE。
这是 Firefox 受影响的小提琴
有谁知道为什么会发生这种情况,以及我该如何解决?