Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如果选择器隐藏,则在另一个选择器上执行该功能_Jquery_Css_Toggle_Hidden - Fatal编程技术网

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

Jquery 如果选择器隐藏,则在另一个选择器上执行该功能,jquery,css,toggle,hidden,Jquery,Css,Toggle,Hidden,我有点笨,不知道如何使我的if语句起作用 如果classbox1被隐藏,我只想把box2210px放在左边 $(document).ready(function(){ $("span:eq(0)").click(function(){ $(".box1").toggle("slow"); }); $("span:eq(1)").click(function(){ $(".box2").toggle("slow"); });

我有点笨,不知道如何使我的if语句起作用

如果class
box1
被隐藏,我只想把
box2
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;
    }
});
如果您有任何想法,我们将不胜感激,谢谢


这是你想要的吗

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

尝试编辑此内容:希望此内容对您有所帮助

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

试试这个新的

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

$("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"});
     }
}

我说不出你的小提琴中有什么不符合你的要求,
else{return;}
@Blazemonger我应该把什么设置为零呢?@j08691我只是在摆弄不同的选项,我想你必须用一个else语句和一个if语句,因为某种原因,在jfiddle上不起作用,基本上,右上角的蓝色框应该保持原样……也许你应该改变框的
可见性
,而不是切换它们?如果你想在它隐藏时这样做呢?你可以使用
$(选择器)。不(':visible')
这使得当我隐藏box1时,box2会显示出来,因为属性
$(.box2”).css(“left”,“210px”);将box2放在box3后面,将左边的值改为其他值,然后查看感谢您的回答,我使用了绝对定位,效果很好