シンプルなhtmlとjQuery
<label><input id="rdb1" type="radio" name="toggler" value="1" />Money</label>
<label><input id="rdb2" type="radio" name="toggler" value="2" />Interest</label>
<div id="blk-1" style="display:none">
...
</div>
<div id="blk-2" style="display:none">
...
</div>
$(function() {
$("[name=toggler]").each(function(i) {
$(this).change(function(){
$('#blk-1, #blk-2').hide();
divId = 'blk-' + $(this).val();
$("#"+divId).show('slow');
});
});
});
ただし、目的のトグル効果は機能しません。一方のラジオボックスをクリックしても、もう一方のラジオボックスを非表示にできません。
何か案は?
<label><input id="rdb1" type="radio" name="toggler" value="1" />Money</label>
<label><input id="rdb2" type="radio" name="toggler" value="2" />Interest</label>
<div id="blk-1" class="toHide" style="display:none">
money
</div>
<div id="blk-2" class="toHide" style="display:none">
interest
</div>
$(function() {
$("[name=toggler]").click(function(){
$('.toHide').hide();
$("#blk-"+$(this).val()).show('slow');
});
});
$("input:radio").click(function(){
$("div").hide();
var div = "#blk-"+$(this).val();
$(div).show();
});
ここのオンラインデモ: http://jsfiddle.net/yLJPC/
これがあなたが欲しいものだと思います。まず、最初のラジオボタンを選択し、最初のdivを表示します。次に、ボタンを切り替えるとdivが入れ替わります
$("input:radio").click(function(){
$('#blk-1').toggle();
$('#blk-2').toggle();
});