Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.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 页面重新加载有时不会';我不显示按钮_Javascript_Jquery_Cookies - Fatal编程技术网

Javascript 页面重新加载有时不会';我不显示按钮

Javascript 页面重新加载有时不会';我不显示按钮,javascript,jquery,cookies,Javascript,Jquery,Cookies,所以现在我正在制作一个仪表板侧菜单,可以折叠,也可以重新打开。除了一个问题外,一切都很好。比方说,我折叠了侧边菜单,然后开始以大约1次单击/秒的速度反复按刷新页面。大约有2/10的页面重新加载将不会显示应有的按钮。以下是我得到的: $(document).ready(function () { $("#home").click(function () { "use strict"; $.cookie('open', false); $(th

所以现在我正在制作一个仪表板侧菜单,可以折叠,也可以重新打开。除了一个问题外,一切都很好。比方说,我折叠了侧边菜单,然后开始以大约1次单击/秒的速度反复按刷新页面。大约有2/10的页面重新加载将不会显示应有的按钮。以下是我得到的:

$(document).ready(function () {
    $("#home").click(function () {
        "use strict";
        $.cookie('open', false);
        $(this).hide();
        $("#home2").show();
        $("#nav").slideToggle('fast');
        $(".content").animate({marginLeft: "0px"}, 200, function () {});
        $(".content").animate({width: "100%"}, 200, function () {});
    });

    $("#home2").click(function () {
        "use strict";
        $.cookie('open', true);
        $(this).hide();
        $("#nav").slideToggle('fast');
        $("#home").show();
        $(".content").animate({marginLeft: "220px"}, 200, function () {});
        $(".content").animate({width: "100%"}, 200, function () {});
    });

    if ($.cookie('open') === 'false') {

        $("#nav").slideToggle('fast');
        $(".content").animate({marginLeft: "0px"}, 1, function () {});
        $(".content").animate({width: "100%"}, 1, function () {});
        $.cookie('open', false);
        $("#home").hide();
        $("#home2").show();
    }
});
我使用cookies来获取侧边栏菜单是否打开的状态。当cookie open==false时,侧栏关闭;当cookie open==true时,侧栏打开

更详细地说,ID“home2”在某些时候不会出现

每当我重新加载页面时,总有几毫秒的时间可以看到

    $("#nav").slideToggle('fast');
    $(".content").animate({marginLeft: "0px"}, 1, function () {});
    $(".content").animate({width: "100%"}, 1, function () {});
工作的东西。每当发生这种情况时,按钮就会出现。但有时在页面上重新加载,页面没有这样做,它只是以闪电般的速度重新加载,而我看不到前面提到的代码在做它的工作;这是当#home2按钮决定不弹出时,这使我相信语句中的内容没有被执行

这是一个非常奇怪的问题,我不知道它为什么会这样

编辑:将if语句更改为:

if ($.cookie('open') === 'false') {
    $("#home2").show();
    $("#home").hide();
    $(".content").animate({marginLeft: "0px"}, 1, function () {});
    $(".content").animate({width: "100%"}, 1, function () {});
    $.cookie('open', false);
    $("#nav").slideToggle('fast');
}

仍然存在相同的问题。

可能是网络连接速度慢

或者刷新时脚本未正确加载


缓存也可能成为给定问题的障碍。

一个选项是在页面周期的后面使用

$(window).load(function(){ 
    //my code here 
}); 

而不是准备好文件;这是干什么的

你应该仔细考虑动画,如果它们应该被链接或以其他方式给出一个明确的执行顺序。在
.content
上,您有两个:;是否可以将其合并为一个等。
.content
上的持续时间设置为1是必需的,还是您真的希望CSS在此处设置这些值?1在1毫秒时非常短-仅设置计时器等可能需要更长的时间。另一个选项是在页面周期的后面使用
$(window.load)(function(){//my code here})执行此操作而不是文件准备就绪;这是干什么的?我使用了一毫秒,因为如果不使用,默认时间会非常慢,我需要它在重新加载页面时尽快隐藏边栏;我还没有遇到问题。将继续测试。我知道我的网络连接非常好。那么,如何在刷新时正确加载它,或者如何解决缓存问题?您使用的是哪台服务器?你能在inspect Element中发送网络选项卡的图像吗?我目前正在使用Apache和WAMP。这是网络标签:根据你的图片,看起来一切都很酷。在生成此图像时,加载是否有问题?我认为提供的解决方案标记已解决。谢谢你的帮助!