jquery - 重新加载后隐藏

时间:2012-10-07 08:18:55

标签: php jquery hide

我有这个jquery代码并且每件事情都运行良好但在window.location.reload(true);之后我想隐藏div #cmd如果可能的话

$(document).ready(function () {
    $("#add").click(
        function () {

            var id = $(this).attr("rel"); // ID
            var full_name = $("#full_name").val();
            var email = $("#email").val();
            var comments = $("#comments").val();
            var datapost = "id=" + id + "&full_name=" + full_name + "&email=" + email + "&comments=" + comments;

            $.ajax(
                {

                    type:"post",
                    url:"{/literal}{base_url()}{literal}post/add_cmd",
                    data:datapost,
                    success:function (Response) {
                        if (Response == 'added') {

                            alert("شكرا لك .. " + full_name + " على التعليق سوف يتم إداراج تعليقك بعد تحديث الصفحة");
                            window.location.reload(true);
                            $("#cmd").hide("Slow");

                        } else {
                            alert(Response);
                        }
// window.location.href = '../admcat/cats';
                    },
                    fail:function () {
                        alert("تعذر حذف الركورد لسوء الاتصال بالانترنت");
                    }
                }
            );


        }
    );


});

我想在window.location.reload(true);之后隐藏$("#cmd"),如果可能的话。

2 个答案:

答案 0 :(得分:2)

这不是那么容易,因为HTTP是无状态协议。这意味着,如果你重新加载,页面的状态就会丢失。

但是当你一起使用JavaScript和PHP时,有一种方法。

  1. 在第一次加载时设置Cookie
  2. 在PHP中重新加载时检查cookie的存在并设置#cmd div的可见性。
  3. 还有其他方法。所有这些方法都试图将状态(“已经加载一次的页面”)传递给下一个加载。

    1. 使用其他方法重新加载(第一次GET,然后是POST)
    2. 传递网址参数,而不仅仅是重新加载
    3. 使用PHP会话
    4. 所有这四种方式都需要PHP来检查:cookie是否存在,HTTP方法是什么,参数是什么,会话中有什么?

答案 1 :(得分:2)

没有好办法检测它是否是页面加载或重新加载,它基本上是一回事。如果你想在首次加载页面时隐藏元素,然后在每次重新加载时隐藏元素,你可以这样做:

$("#cmd").hide();

如果必须仅重新加载,我想一种方法是不使用window.location.reload而是使用window.location.href,然后在URL中添加一些内容,就像查询字符串变量一样,然后你可以检查每个页面加载,并隐藏元素(如果存在)。