我有几个父div标签,它们具有相同的类,其中包含两个子div,其中一个是隐藏的。一次只显示一个父母。我有一个按钮,通过显示下一个并隐藏前一个按钮,一次移动父母一个按钮。第二个按钮必须切换父级的两个子div,当它可见时,它只适用于第一个父级而不是其他的..请在下面示例html ..非常感谢帮助..谢谢
<div class="parent" >
<div id="child1"> text </div>
<div id="child2" style="display:none"> text </div>
</div>
<div class="parent" style="display:none" >
<div id="child1"> text </div>
<div id="child2" style="display:none"> text </div>
</div>
<div class="parent" style="display:none" >
<div id="child1"> text </div>
<div id="child2" style="display:none"> text </div>
</div>
通过父级移动的脚本: $(function(){
$(".parent:first").fadeIn(); // show first step
$("#next-step").val('Continue');
$("#back-step").hide().click(function () {
var $step = $(".parent:visible");
if ($step.prev().hasClass("parent")) { // is there any previous step?
$step.hide().prev().fadeIn(); // show it and hide current step
}
});
$("#next-step").click(function () {
var $step = $(".parent:visible");
if ($step.next().hasClass("parent")) {
$step.hide().next().fadeIn();
$("#back-step").show(); // recall to show backStep button
}
else { // this is last step, submit form
//$("#next-step").hide();
$("form").submit();
}
});
});
用于切换每个当前可见父div的子项的按钮的脚本
$('.txtFlip').on('click', function(event) {
$('.parent:visible > #child1').slideToggle();
$('.parent:visible > #child2').slideToggle();
});
我现在的问题是为每个当前可见的父级切换child1和child2的脚本。它只适用于第一个父母,但不适用于其他父母。帮助PLZ ......
感谢......
答案 0 :(得分:1)
你可以使用jQuery的:visible选择器来选择当前可见的元素并根据它进行切换。
bindLoopThrough = function($button, initial_selector){
// Define a function that will apply for both sets of buttons,
// because they have similar functionality
$button.on("click", function(){
var $current = $(initial_selector),
$next = $current.next();
if($next.length===0){
$next = $current.siblings().eq(0); // Reached end, get first.
}
$current.hide();
$next.show();
});
}
bindLoopThrough($("#button1"), ".parent:visible");
bindLoopThrough($("#button2"), ".parent:visible .child:visible");