页面重新加载有时不显示按钮

Page reload sometimes doesn't show a button

本文关键字:显示 按钮 加载 新加载      更新时间:2023-09-26

所以现在我正在制作一个可折叠和可重新打开的仪表板侧菜单。一切都很好,除了一个问题。假设我折叠了侧边菜单,然后开始以大约 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();
    }
});

我使用 cookie 来获取侧边栏菜单是否启动的状态。 当 cookie 打开 == false,则侧边栏关闭,当 cookie 打开 == true 时,它被打开。

为了提供更多详细信息,ID "home2" 是有时没有显示的ID。

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

    $("#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 
}); 

而不是文档准备好;这里做什么?api.jquery.com/ready

可能的机会是网络连接速度较慢。

否则,刷新时脚本未正确加载。

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