实际上,一个mousedown
事件将首先被触发并检查您的单选按钮。您可以通过在单选按钮上按住鼠标按钮轻松验证这一点。然而,几乎所有的 GUI 元素只有在两者都被触发并成功运行时才会被执行或mousedown
更改mouseup
。
请参阅此示例(演示):
$(function() {
$('[name="test"]').each(function() {
$(this).mousedown(function(e) {
e.preventDefault();
if ($(this).is(':checked')) {
alert('This radio button was checked in mousedown');
} else {
alert('This radio button was not checked in mousedown');
}
});
$(this).click(function(e) {
e.preventDefault();
if ($(this).is(':checked')) {
alert('This radio button was checked');
} else {
alert('This radio button was not checked');
}
});
});
});
正如您所看到的mousedown
,首先触发了它,它会警告“此单选按钮未在 mousedown 中选中”。该click
事件被阻止,因为实际mouseup
事件被讨厌的警报取消了。但是,如果您使用,console.log
您会注意到它click
仍在执行,并且单选按钮仍处于虚拟状态。
但是,如果您检查活动的单选按钮,您会注意到没有活动的单选按钮。element的行为click
有时很烦人,但e.preventDefault()
会做的,不用担心。