2014-02-24 63 views
0

我是一個noob的一點,不能弄清楚如何使我的if語句工作。如果選擇器隱藏,在另一個選擇器上執行功能

我想要做的就是將位置box2向左210px,如果類box1被隱藏。

$(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

+0

...將其設置爲零? – Blazemonger

+0

我不能告訴你在你的小提琴中不按要求工作 – Tomanow

+0

'else {return; }' – j08691

回答

0

編輯:

嘗試切換結束後,這個新JSFiddle

我調用該函數:

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

我認爲,當你驗證,如果被隱藏或不,該元素曾經有屬性display = block,但是如果你在toggle()之後調用它,則返回re元素的狀態。

function changeProperty(){ 

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

如果你想隱藏它時該怎麼辦? – patwick600akabob

+0

你可以使用'$(selector).not(':visible')' –

+0

這使box2消失,當我隱藏box1 – patwick600akabob

1

這是你想要的嗎?

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

的else語句,因爲某些原因在jfiddle上不起作用,基本上右上角的藍框應該保持在它的位置...... – patwick600akabob

+0

也許你應該改變方塊的「可見度」而不是切換它們? – Blazemonger

0

嘗試編輯此:希望這會幫助你。

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

冒號還沒有爲我工作 – patwick600akabob

相關問題