Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当按下按钮时,如何确定按钮后面当前显示的div_Javascript_Html_Togglebutton_Jquery - Fatal编程技术网

Javascript 当按下按钮时,如何确定按钮后面当前显示的div

Javascript 当按下按钮时,如何确定按钮后面当前显示的div,javascript,html,togglebutton,jquery,Javascript,Html,Togglebutton,Jquery,我使用Javascript/Jquery来切换用户窗口中显示哪个div。我有一个初始的背景div#container,如果用户单击某个位置,它将与另一个div切换。显示新的div后,将切换“后退”按钮。如果按下“后退”按钮,我希望将div切换回初始的#container。如果出现这种情况,则应再次将后退按钮的显示切换为关闭 由于“后退”按钮显示在不同的div中,因此我需要确定用户正在查看的背景div,以便关闭该特定div,并打开#container back。如果我不关闭当前div,容器将不会再

我使用Javascript/Jquery来切换用户窗口中显示哪个div。我有一个初始的背景div
#container
,如果用户单击某个位置,它将与另一个div切换。显示新的div后,将切换“后退”按钮。如果按下“后退”按钮,我希望将div切换回初始的
#container
。如果出现这种情况,则应再次将后退按钮的显示切换为关闭

由于“后退”按钮显示在不同的div中,因此我需要确定用户正在查看的背景div,以便关闭该特定div并打开#container back。如果我不关闭当前div,容器将不会再次显示

下面是一个实例示例的代码:

JS:
$(文档).ready(函数()
{
$(“#backButton”)。单击(函数(e)
{
如果(当前DIV是区域1)
{
$(“#容器”).toggle();//打开容器
$(“#区域1”).toggle();//关闭区域1
$(“#backButton”).toggle();//关闭后退按钮
}
});
});

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


任何帮助都将不胜感激

如果您谈论的是位于div
区域1内DOM中的后退按钮,您可以使用:

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

这表示“如果包含ID区域1的此按钮的父节点数不为零”。有关更多信息,请参阅。一般来说,jQuery中的函数将对您有所帮助。

这可能就是您所寻找的:

如果您所做的只是来回切换两个DIV,那么您甚至不必检查当前显示的DIV,因为
.toggle()
函数应该可以在开箱即用的情况下为您执行此操作

假设您有两个div,请确保其中一个是隐藏的,另一个是显示的,如下所示:

<div id="region1">foo</div>
<div id="region2" style="display:none;">bar</div>
您甚至可以只使用一个按钮来完成此操作,如果您愿意,只需切换按钮内的文本即可

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

这里的完整代码示例:

因为我有不同的div,后退按钮显示在其中,我需要确定用户正在查看哪个背景div
-因此,切换将不起作用,因为它不是在两个状态之间切换,而是在许多状态之间切换。+1啊,指出这一点很好。完全错过了,谢谢。:)是的,谢谢你的建议,但是布莱利·穆恩完全解决了我的问题
<div id="region1">foo</div>
<div id="region2" style="display:none;">bar</div>
$('#backButton').click(function(){
    $('#region1, #region2').toggle();
});
// inside the click handler
$(this).val( $(this).val() == 'Next' ? 'Back' : 'Next' );