所以现在我正在制作一个可以折叠并重新打开的仪表板侧面菜单。除了一个问题,一切都很好。假设我折叠了我的侧边菜单,然后开始一遍又一遍地按下刷新页面,速度约为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打开== false时,侧边栏关闭,当cookie打开== true时,它会被打开。
为了提供更多细节,ID“home2”是某些时间没有显示的ID。
每当我重新加载页面时,有几毫秒我可以看到
$("#nav").slideToggle('fast');
$(".content").animate({marginLeft: "0px"}, 1, function () {});
$(".content").animate({width: "100%"}, 1, function () {});
做其工作的东西。只要发生这种情况,按钮就会显示出来。但有时在页面上重新加载,页面不会这样做,它只是快速重新加载闪电,我无法看到前面提到的代码完成它的工作;这是#home2按钮决定不弹出的时候,这让我相信声明中的东西没有被执行。
这是一个奇怪的问题,我不知道为什么它会像这样......
编辑:将声明改为:
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');
}
还有同样的问题。
答案 0 :(得分:0)
可能的机会可能是网络连接缓慢。
否则在刷新时脚本未正确加载。
缓存也可能成为给定问题的障碍。
答案 1 :(得分:0)
一种选择是稍后在页面循环中使用
执行此操作$(window).load(function(){
//my code here
});
而不是准备好文件;这是做什么的? api.jquery.com/ready