0

我正在使用 Javascript/Jquery 有一个按钮切换哪个 div 显示在用户的窗口中。我有我的初始背景 div #container,如果用户单击某个位置,它会使用不同的 div 进行切换。一旦显示新的 div,就会打开后退按钮。#container如果按下后退按钮,我希望将 div 切换回初始状态。如果发生这种情况,应再次关闭后退按钮的显示。

由于我有不同的 div 显示后退按钮,我需要确定用户正在查看哪个背景 div,以便关闭特定的 div 并重新打开#container 。如果我不关闭当前 div,容器将不会再次显示。

这是我的一个实例示例的代码:

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
        }
    });
});

显然,我不知道使用什么代码来确定用户正在查看哪个 div。我试过if(document.getElementById('region1');)了,但没有用;我不认为它会,但这就是我要如何确定当前 div 的方向。

任何帮助将不胜感激!

4

4 回答 4

2
if($('#region1').is(":visible")){ etc... }
于 2011-03-22T16:53:10.033 回答
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();
});

您甚至可以只使用一个按钮来完成此操作,并且如果您愿意,只需切换按钮内的文本即可。

// inside the click handler
$(this).val( $(this).val() == 'Next' ? 'Back' : 'Next' );

此处的完整代码示例:jsFiddle 示例

于 2011-03-22T17:05:17.233 回答
0

如果您正在谈论位于 div 内的 DOM 中的后退按钮region1,您可以使用:

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

其中表示“如果包含 ID 区域 1 的此按钮的父级数量非零”。欲了解更多信息,请参阅父母。一般来说,jQuery 中的遍历函数会对您有所帮助。

于 2011-03-22T16:52:14.637 回答
0

这可能是您正在寻找的: http ://api.jquery.com/parent-selector/

于 2011-03-22T16:52:27.317 回答