如果选择器隐藏,则在另一个选择器上执行功

时间:2014-02-24 19:10:48

标签: jquery css toggle hidden

我有点像菜鸟,无法弄清楚如何使我的if语句有效。

如果隐藏了类box2,我想要做的就是将box1 210px放在左侧。

$(document).ready(function(){
    $("span:eq(0)").click(function(){
        $(".box1").toggle("slow");
    });

    $("span:eq(1)").click(function(){
        $(".box2").toggle("slow");
    });

    $("span:eq(2)").click(function(){
        $(".box3").toggle("slow");
    });

    $("span:eq(3)").click(function(){
        $(".box4").toggle("slow");
    });

    if($(".box1").is(":hidden")){
       $(".box2").css("left","210px");
    } else {
        return;
    }
});

非常感谢任何想法,谢谢。

这是jFiddle

3 个答案:

答案 0 :(得分:1)

这是你想要的吗?

     if($(".box1").is(":hidden")){
         $(".box2").css("left","210px");
     }else{
         $(".box2").css("left","0"); // default
     }

答案 1 :(得分:0)

尝试编辑:希望这会对你有帮助。

if($(".box1").is(":hidden")){
         $(".box2").css({"left":"210px"});
     }
else
     {
        $(".box2").css({"left":"0"});
     }

答案 2 :(得分:0)

修改

尝试新的JSFiddle

我在切换完成后调用该函数:

$("span:eq(0)").click(function(){
      $(".box1").toggle("slow", function(){
          changeProperty();   
      });          
});

我认为当你验证是否隐藏时,该元素的属性显示为display = block,但是如果你在toggle()之后调用它会返回元素的真实状态。

function changeProperty(){

    if($(".box1").is(":hidden")){
         $(".box2").css({"left":"210px"});
     }
    else
     {
        $(".box2").css({"left":"0"});
     }
}