クリックされた要素にchange
イベントのみ起動(すなわち現在有効になっているラジオボタン)。ラジオボタンが自動的に無効になっても、起動しません。
したがって、いずれかのラジオボタンがchange
イベントをトリガーするたびに、すべてのラジオボタンをチェックする必要があります。場合は、代わりに
$('input:radio').change(function() {
var id = $(this).attr("id");
if (id === "radio_ban_length") {
$("ban_length").fadeIn();
$("rank_list").fadeOut();
} else {
$("rank_list").fadeIn();
$("ban_length").fadeOut();
}
});
:あなたが正しいドロップダウンを切り替えるためにそれらを使用することができ、その後
<input type="radio" name="op" id="radio_ban_length" />
<input type="radio" name="op" id="radio_rank_list" />
:あなたはしかし、それらを区別するので、彼らにid
Sを与えることによって開始できるようにする必要がありますあなたは挑戦が好きか、あなたは2ラジオの以上のものを持っている可能性がある場合、あなたはこのような何かをfilter()
と:checked
を使用することができます。
function getDropdownId(radioId) {
return '#' + radioId.replace(/^radio_/, '');
}
var radios = $('input:radio');
radios.change(function() {
// Checked radio's:
radios.filter(':checked').each(function(){
var id = getDropdownId($(this).attr('id'));
$(id).fadeIn();
});
// Unchecked radio's:
radios.filter(':not(:checked)').each(function(){
var id = getDropdownId($(this).attr('id'));
$(id).fadeOut();
});
});
ありませんこのメソッドは、ドロップダウンリストのIDと一致するラジオボタンのIDに依存します(例:のためのradio_ban_length
)。
アップデート:ここライブの例です:http://jsfiddle.net/55ANB/1/
は、彼らが同じ ''
はい、それらは同じ
すでにjQueryを使用している場合は、インラインJavaScriptを使用しません。ここでも関連コードの残りの部分を表示してください。 – Sparky