2013-10-28 42 views
0

考虑下面的代码,其中切换两类不同的点击的可见性()函数:如何添加一个if语句来切换功能

<!-- Toggles --> 
<div class="a"></div> 
<div class="b"></div> 

<!-- Result --> 
<div class="x" style="display:none"></div> 
<div class="y" style="display:none"></div> 
<div class="z" style="display:none"></div> 

<!-- Script --> 
$(".a").click(function() { 
var $this = $(this); 
    $this.siblings(".x").toggle(); 
}); 


$(".b").click(function() { 
var $this = $(this); 
    $this.siblings(".y").toggle(); 
}); 

我怎么会更新这个让任何时候x和y是可见的,第三类是“z”而不是x和y?

回答

0

此作品为展示位置:http://jsfiddle.net/DKRe2/1/

HTML:

<!-- Toggles --> 
<div class="a">a</div> 
<div class="b">b</div> 
<!-- Result --> 
<div class="x" style="display:none">class x</div> 
<div class="y" style="display:none">class y</div> 
<div class="z" style="display:none">class z</div> 

JS:

<!-- Script --> 
$(".a").click(function() { 

    var $this = $(this); 
    if ($this.siblings(".y").css('display') != 'none' && $this.siblings(".x").css('display') == 'none') { 
     //now Hide y and show Z 
     $this.siblings(".y").toggle(); 
     $this.siblings(".z").toggle(); 
    } else { 
     $this.siblings(".z").css('display', 'none'); 
     $this.siblings(".x").toggle(); 
    } 
}); 


$(".b").click(function() { 
    var $this = $(this); 
    if ($this.siblings(".x").css('display') != 'none' && $this.siblings(".y").css('display') == 'none') { 
     //now Hide y and show Z 
     $this.siblings(".x").toggle(); 
     $this.siblings(".z").toggle(); 
    } else { 
     $this.siblings(".z").css('display', 'none') 
     $this.siblings(".y").toggle(); 
    } 
}); 
+0

谢谢,如果我想保持代码关系(即参考sibilings),这将如何工作,所以只有兄弟姐妹受到影响(类在页面的其他地方重复)? – alias51

+0

只需添加之前的兄弟选择器即可。我删除了它,因为它在您提供的代码示例中不是绝对必需的。我会修改答案。 –

1

演示http://jsfiddle.net/Yn3L2/

其余的应该满足您的需求:)

代码

$(".a").click(function() { 
    var $this = $(this); 
    $this.siblings(".x").toggle(); 
    checkZ(); 
}); 

$(".b").click(function() { 
    var $this = $(this); 
    $this.siblings(".y").toggle(); 
    checkZ(); 
}); 

function checkZ() { 
    $('.z').hide(); 
    if ($('.x').is(':visible') && $('.y').is(':visible')) { 

     $('.z').show(); 
    } 
} 
+1

你贴错的jsfiddle链接? –

+0

@Asad大声笑是的布鲁夫,谢谢**演示** http://jsfiddle.net/Yn3L2/':))' –

+0

@Tats_innit谢谢,如果我想保持这个关系到$这个变种(即能够如果在同一页面上多次使用它,但只触发兄弟类的函数,if if($:this.siblings(“。a”)。is(':visible')&&()$ this.siblings(“.b “).is(':visible'))工作? – alias51

0

我想这是你真正想要的。

Working DEMO

新增jQuery代码

function checkZ() { 
    $('.z').hide(); 
    if ($('.x').is(':visible') && $('.y').is(':visible')) { 
     $('.x').hide(500); 
     $('.y').hide(500) 
     $('.z').show(); 
    } 
} 
+0

谢谢,如果我想保持代码关系(即引用sibilings),这将如何工作,所以只有兄弟姐妹受到影响(类在页面的其他地方重复)? – alias51

+0

BY可能为子div提供一个唯一的ID并引用jQuery中的ID – MarsOne