如何确定按下按钮后当前在按钮后面显示哪个div
我正在使用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的方向。
任何帮助将不胜感激!
if($('#region1').is(":visible")){ etc... }
如果你谈论的是位于在div region1
内的DOM后退按钮,你可以使用:
if($(this).parents("#region1").length > 0)
它说:“如果包含ID区1此按钮的家长人数的是非零”。欲了解更多信息,请参阅parents。通常,jQuery中的traversing函数将对您有所帮助。
如果你正在做的是切换两个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
'由于我有不同的div,后退按钮显示,我需要确定用户正在查看哪个背景div“ - 因此,切换将不起作用,因为它不是在两个状态之间切换,而是很多。 – 2011-03-22 17:12:03
+1啊,出色的工作指出。完全错过了,谢谢。:) – 2011-03-22 17:15:10
是的,谢谢你的建议,但Bllly Moon完全解决了我的问题。 ;) – Briz 2011-03-22 17:17:10
这工作就像一个魅力。万分感谢! – Briz 2011-03-22 16:55:50