実際には、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最初に起動され、「このラジオボタンはマウスダウンでチェックされていません」という警告が表示されます。click実際のmouseupイベントは厄介なアラートによってキャンセルされるため、イベントは防止されます。ただし、使用すると、それがまだ実行され、ラジオボタンが仮想的にチェックされているconsole.logことに気付くでしょう。click
ただし、アクティブなラジオボタンを確認すると、アクティブなラジオボタンがないことがわかります。要素の振る舞いclickは時々苛立たしいものですが、e.preventDefault()それは仕事をします、心配しないでください。