2011-03-22 71 views
0

我正在使用Javascript/Jquery使按鈕切換哪個div顯示在用戶的窗口中。我有我的初始背景div #container,如果用戶點擊某個位置,它會與另一個div切換。一旦顯示新的div,後退按鈕將在上切換。如果按下按鈕,我想要後退按鈕將div切換回最初的#container。如果發生這種情況,後退按鈕的顯示屏應該再次打開關閉如何確定按下按鈕後當前在按鈕後面顯示哪個div

由於我有不同的div的返回按鈕顯示了,我需要確定哪些背景div的用戶正在觀看以切換該特定的div 關閉和#container的上背面。如果我不切換當前div off,容器將不會再次顯示。

這是我的一個實例的示例代碼:

JS:

$(document).ready(function() 
{ 
    $("#backButton").click(function(e) 
    { 
     if(THE CURRENT DIV IS REGION 1) 
     { 
      $("#container").toggle(); //toggle the container on 
      $("#region1").toggle(); //toggle region 1 off 
      $("#backButton").toggle(); //toggle the back button off 
     } 
    }); 
}); 

Obviously, I do not know what code to use to determine which div the user is looking at. I tried if(document.getElementById('region1');)但它沒有工作;我不認爲會這樣,但這就是我要如何確定當前div的方向。

任何幫助將不勝感激!

回答

2
if($('#region1').is(":visible")){ etc... } 
+0

這工作就像一個魅力。萬分感謝! – Briz 2011-03-22 16:55:50

0

如果你談論的是位於在div region1內的DOM後退按鈕,你可以使用:

if($(this).parents("#region1").length > 0) 

它說:「如果包含ID區1此按鈕的家長人數的是非零」。欲瞭解更多信息,請參閱parents。通常,jQuery中的traversing函數將對您有所幫助。

0

如果你正在做的是切換兩個div來回,你甚至不用檢查哪個DIV當前顯示,因爲.toggle()函數應該爲你開箱即用。

考慮你有兩個div,確保一個被隱藏,顯示了一個,像這樣:

<div id="region1">foo</div> 
<div id="region2" style="display:none;">bar</div> 

現在,當你點擊按鈕,你只需要調用他們兩個.toggle()

$('#backButton').click(function(){ 
    $('#region1, #region2').toggle(); 
}); 

你甚至可以通過只使用一個按鈕來完成該操作,並且只需在按鈕內切換文本就可以了。這裏

​​

完整的代碼示例:jsFiddle example

+1

'由於我有不同的div,後退按鈕顯示,我需要確定用戶正在查看哪個背景div「 - 因此,切換將不起作用,因爲它不是在兩個狀態之間切換,而是很多。 – 2011-03-22 17:12:03

+0

+1啊,出色的工作指出。完全錯過了,謝謝。:) – 2011-03-22 17:15:10

+0

是的,謝謝你的建議,但Bllly Moon完全解決了我的問題。 ;) – Briz 2011-03-22 17:17:10