【发布时间】:2013-11-10 01:10:36
【问题描述】:
我有一小段代码用于在按下 空格键 时切换复选框的checked 属性。
$(document).on('keydown', function(e) {
if (e.which === 32) {
e.preventDefault();
$('#example').prop('checked', function() {
return !this.checked;
});
}
});
以上内容在 Chrome v30 和 IE10 中运行良好,但在 Firefox v24 中则不行。当您单击复选框,然后使用空格键切换它,它会暂时选中它,然后取消选中它,反之亦然。
我认为问题与使用keydown() 时在Firefox 中触发click 事件有关,尽管使用了e.preventDefault()(这会阻止在Chrome 和IE 中触发click 事件)。
我尝试使用相同的代码绑定keyup 事件。这解决了 Firefox 中的问题,但随后将同样的问题引入了 IE。
Here's the fiddle where Firefox is affected
有人知道为什么会发生这种情况,我该如何解决?
【问题讨论】:
-
啊,现在我明白你的意思了。
标签: jquery