2011-03-22 11 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

相关问题