実際にはmousedown
イベントが発生し、ラジオボタンを確認します。ラジオボタンにマウスボタンを押して、これを簡単に確認できます。しかし、ほとんどすべてのGUI要素は、mousedown
とmouseup
の両方が起動して正常に実行された場合にのみ実行または変更されます。あなたはmousedown
が最初にトリガーされます、そしてそれが通知されます見ることができるように
$(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');
}
});
});
});
「このラジオボタンをマウスダウンで確認されなかった」:
は、この例(demo)を参照してください。実際にmouseup
イベントが不快なアラートによってキャンセルされるため、click
イベントが防止されます。しかし、console.log
を使用すると、click
がまだ実行されていて、ラジオボタンが仮想的にチェックされていることがわかります。
ただし、check for active radio buttonsの場合は、何もアクティブではないことがわかります。 click
要素の動作は時々刺激的ですが、e.preventDefault()
はその仕事をしますが、心配しないでください。
+1、包括的。 – undefined
正確に私が知る必要があったもの。ありがとうございました! –
Safari 7とChrome 33で比較することができます。結果は異なり、同じ問題が発生しています。 –