実際には、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()
それは仕事をします、心配しないでください。