ラジオ入力のグループにアタッチされたクリック イベント ハンドラーがあり、既に選択されている (プロパティ 'checked' が設定されている) ラジオ ボタンをクリックしているかどうかを確認したいと考えています。イベント ハンドラーはデイジー チェーン方式で動作すると考えました (最初にクリック時にイベント ハンドラーを呼び出し、次にクリックの既定の動作までチェーンをたどります)。クリックしたばかりのラジオ ボタンでプロパティ 'checked' が true かどうかを評価すると、クリック イベント ハンドラーで常に true が返されるためです。
クリックは既定の動作で既に処理されており、クリックしたラジオ ボタンに「checked」プロパティが既に適用されています。繰り返しますが、クリック イベント ハンドラーはその既定の動作の前に処理されると考えました。さらに奇妙なのは、デフォルトの動作を防止しても、'checked' プロパティに対して true が返されることです。これは、「checked」プロパティが「change」イベントによって処理されているためと思われるため、クリック イベント ハンドラーのデフォルトの動作を妨げても何の影響もありません。
$("input[type='radio']").click(function(e) {
e.preventDefault();
alert($(this).prop("checked")); // always returns true; i want prop value immediately prior to click
});
どうすれば自分が求めているものを達成できますか? つまり、クリックされたばかりのラジオ ボタンが既にチェックされているものかどうかを確認するためです。ありがとう。