单击打开Div,然后再次单击时将其保持打开状态

时间:2017-05-23 15:26:07

标签: javascript jquery html

我有以下

 $(document).ready(
    function() {
        $("#click").click(function() {
            $("#top").toggle();
        });
    });


<div id="click"><img src="/files/images/x.jpg" alt="x"/>Click to open</div>
    <div id="top"Some information></div>

我想要的是div在点击时保持打开状态或再次重新加载页面。 有没有办法做到这一点?

4 个答案:

答案 0 :(得分:1)

<script>
$(document).ready(
    function() {
        $("#click").click(function() {
            $("#top").show();
        });
    });
</script>

<div id="click"><img src="/files/images/x.jpg" alt="x"/>Click to open</div>
<div id="top" style="display: none;"> Some information</div>

即使您点击#click两次或多次,Top-Div也会保持打开状态。

答案 1 :(得分:1)

根据您的要求,我猜你需要使用cookie。如果弹出窗口在单击事件触发器上打开或关闭,则设置带有标志的cookie,如果值已设置为打开,则检查变量是否为变量,然后触发弹出打开操作,或者保持关闭状态。

答案 2 :(得分:0)

不是调用toggle函数而是向div添加一个类(例如open)。使用CSS add display:none; div和display:block;到开放的班级。

<script>
$(document).ready(
    function() {
        $("#click").click(function() {
            $("#top").addClass('opened');
        });
    });
</script>
<style>
#top { display: none; }
#top.opened { display: block; }
</style>

<div id="click"><img src="/files/images/x.jpg" alt="x"/>Click to open</div>
<div id="top"> Some information</div>

答案 3 :(得分:0)

使用toogle,您将在第二次点击时将其关闭。打开第三个等等。只需将其更改为show()。

$("#top").show();

关于在刷新页面时保持打开状态,您可以使用本地存储,cookie或任何客户端,但它将仅保留在当前浏览器中。否则,您必须通过AJAX请求将状态存储到服务器并获取值。