在回答另一个问题时,我遇到了一些我认为非常奇怪的行为,我想知道这是否应该被视为一个错误,或者它是否在规范中的某个地方。
可以在这个jsFiddle观察到这种行为。
给定以下输入复选框元素:
<input type="checkbox" id="check" />
如果您要应用以下单击事件处理程序(我们将在此处使用 jQuery 以保持示例简洁):
$('#check').on('click', function (e) {
console.log(this.checked);
return false; //This prevents the default action from occurring.
});
您会在开发者控制台中看到:
true
这里实际发生的是复选框的状态在进入单击事件处理程序之前正在发生变化。但是,如果 click 事件处理程序阻止默认操作,则复选框的状态为reverted。
这对我来说似乎是一个错误。如果不阻止默认操作,我希望复选框的状态仅在单击事件处理程序之后更新。
这是一个错误吗?这是否应该报告给不同的浏览器分销商?
(我目前只在 Chrome 中测试过)