在页面重新加载时检查JS变量并相应地隐藏/显示div

时间:2015-07-26 22:50:00

标签: javascript php jquery html css

我有一个包含4个div(医生,诊断,手术和药物)的页面

<div id="menubar" class="noprint">
    <?php include "structure/menu.php";?>
</div>
<div id="diagnosis">
    <?php include "structure/diagnosis.php";?>
</div>
<div id="doctors">
    <?php include "structure/doctors.php";?>
</div>
<div id="medications">
    <?php include "structure/medications.php";?>
</div>
<div id="surgeries">
    <?php include "structure/surgeries.php";?>
</div>

我有一个.js文件,当点击menudiv中的菜单按钮时会激活该文件:

function medbutton() {
    $("#diagnosis").hide();
    $("#doctors").hide();
    $("#medications").show();
    $("#surgeries").hide();
    selector = "medical";
    alert(selector);
}
function diagbutton() {
    $("#diagnosis").show();
    $("#doctors").hide();
    $("#medications").hide();
    $("#surgeries").hide();
    selector = "diag";
    alert(selector);
}
function drbutton() {
    $("#diagnosis").hide();
    $("#doctors").show();
    $("#medications").hide();
    $("#surgeries").hide();
    selector = "doctor";
    alert(selector);
}
function surgbutton() {
    $("#diagnosis").hide();
    $("#doctors").hide();
    $("#medications").hide();
    $("#surgeries").show();
    selector = "surgery";
    alert(selector);
}

正如您所看到的,我已使用alert(var)告诉我selector正在更改,而且(警报显示正确的var)。

我想要发生的是,当页面重新加载时(从包含.php个文件的域内导航,请将页面.show()设置为上次打开的div(这是{{ 1}} selector)。

当我刷新页面时,它会清除所有div(因为它应该在初始加载时):

var selector;

var

任何想法如何让这个工作?我之前没有使用过cookies,但我想我可以学习如何使用它们,只是扔掉20分钟左右的时间,但是有一种方法可以接近我使用过的理论上工作的方法?

1 个答案:

答案 0 :(得分:1)

你可以这样做:

function getCookie(cname) {
    var name = cname + "=";
    var ca = document.cookie.split(';');
    for(var i=0; i<ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1);
        if (c.indexOf(name) == 0) {
            return c.substring(name.length, c.length);
        }
    }
    return "";
}
$(document).ready(function() {
    var selector = getCookie("sel");
    $("#diagnosis").hide();
    $("#doctors").hide();
    $("#medications").hide();
    $("#surgeries").hide();
    if (selector == "medical") {
        $("#medications").show();
    }
    if (selector == "doctor") {
        $("#doctors").show();
    }
    if (selector == "diag") {
        $("#diagnosis").show();
    }
    if (selector == "surgery") {
        $("#surgeries").show();
    }

});

getCookie()功能来自http://www.w3schools.com/js/js_cookies.asp
您可以将Cookie设置为:

document.cookie="sel=doctor"; 

Simple JSFiddle Demo