Javascript 页面重新加载有时不会';我不显示按钮
所以现在我正在制作一个仪表板侧菜单,可以折叠,也可以重新打开。除了一个问题外,一切都很好。比方说,我折叠了侧边菜单,然后开始以大约1次单击/秒的速度反复按刷新页面。大约有2/10的页面重新加载将不会显示应有的按钮。以下是我得到的:Javascript 页面重新加载有时不会';我不显示按钮,javascript,jquery,cookies,Javascript,Jquery,Cookies,所以现在我正在制作一个仪表板侧菜单,可以折叠,也可以重新打开。除了一个问题外,一切都很好。比方说,我折叠了侧边菜单,然后开始以大约1次单击/秒的速度反复按刷新页面。大约有2/10的页面重新加载将不会显示应有的按钮。以下是我得到的: $(document).ready(function () { $("#home").click(function () { "use strict"; $.cookie('open', false); $(th
$(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。这是网络标签:根据你的图片,看起来一切都很酷。在生成此图像时,加载是否有问题?我认为提供的解决方案标记已解决。谢谢你的帮助!