別の質問に答えているときに、非常に奇妙な動作だと思われるものに遭遇しました。これはバグと見なすべきなのか、それとも仕様のどこかにあるのか疑問に思っています。
この動作は、この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
ここで実際に起こっていることは、クリック イベント ハンドラーに入る前に、チェックボックスの状態が変化していることです。ただし、クリック イベント ハンドラーが既定のアクションを防止する場合、チェックボックスの状態はrevert になります。
これは私にはバグのようです。デフォルトのアクションが妨げられていない場合、チェックボックスの状態はクリックイベントハンドラーの後にのみ更新されると思います。
これはバグですか?これは、別のブラウザー ディストリビューターに報告する必要がありますか?
(現在、これはChromeでのみテストしています)