特定のアイテムが選択されたときにのみ表示する特定の div が必要です。
これまでの私の進捗状況は次のとおりです。
オプション 2 が選択されている場合、div5 が表示する必要がある HTML コメントが表示されますが、デフォルトでは、div5 は表示なしに設定されます。
すべての提案を歓迎します!
が選択されているかどうかを確認する条件を追加してからdata-target='2'
明らか#div5
にし、それ以外の場合は非表示にすることはできませんか?
このフィドルのように。
使用したコード:
if ($(this).data('target') == "2") {
$("#div5").show();
} else {
$("#div5").hide();
}
ブール値をshowOrHide.toggle()
に指定できるため、次のようにコードを変更して、表示と非表示を簡素化し、特別な条件に対応できます。
var $options = $('.showSingle');
var $targets = $('.targetDiv');
$('.showSingle').on('click', function () {
$options.removeClass('selected');
$targets.hide();
$(this).addClass('selected');
$('#div' + $(this).data('target')).show();
$('#div5').toggle($(this).data('target') === 2);
});
$('.showSingle').first().click();
.targetDiv, #div5 {
dislpay: none;
}
あなたに必要なのは :
$("#div5").toggle($(this).data('target')==2);
次のようになります。
$('.showSingle').on('click', function () {
$(this).addClass('selected').siblings().removeClass('selected');
$('.targetDiv').hide();
$('#div' + $(this).data('target')).show();
$("#div5").toggle($(this).data('target')==2);
});
クリックアクションを使用してdiv5を表示することで実行できます
これは jsfiddleデモです
http://jsfiddle.net/zerkms/SRQTv/1/
var target = $(this).data('target')
.toString()
.split(',')
.map(function(i) { return '#div' + i; })
.join(', ');
$(target).show();
この変更により、依存するコンマ区切りの div を次のように指定できるようになりました1,2,3
別のオプションは、クラスを使用してアイテムを非表示/表示することです。class.displayNone
があり、すべての div がそのクラスで始まるとします。選択した div に対してのみ削除する必要があります。