我正在开发一个WordPress主题,允许用户使用Javascript切换侧栏的可见性,就像Wiki允许用户显示或隐藏目录一样。
当用户单击链接隐藏侧栏时,我有一个toggle()javascript toggle函数,该函数将侧栏的可见性设置为“无”,并设置文档cookie,以便用户下次访问该页面时,侧栏将记住上次的切换状态。
我有另一个javascript函数setToggleFromCookie(),它获取cookie并基于该cookie设置可见性。除以下情况外,其他情况均适用:
如果侧栏被隐藏(即侧栏div=“none”和文档cookie hidesidebar=1的可见性),则在加载页面时,侧栏会在javascript用可见性=“none”覆盖可见性=“block”之前短暂出现
我已将setToggleFromCookie()放在jQuery(文档)中。ready(function(),但在setToggleFromCookie()跳入隐藏它之前,页面似乎仍然加载并显示侧栏。。。
最合适的回答,由SO网友:Dillie-O 整理而成
虽然很烦人,但你的插件运行正常。页面首先完全呈现自身,显示侧栏,然后JavaScript代码激活以隐藏侧栏。
解决方法是让PHP代码检查/获取用户的cookie,并相应地设置显示的侧栏状态。这样,当页面呈现时,最初将设置为“无”,然后任何未来的图像切换都可以动态隐藏/显示侧栏。
无论出于何种原因再次加载页面时,相同的PHP加载代码将再次运行,并相应地设置侧栏的初始状态,而无需在初始页面加载后“跟进”即可显示/隐藏侧栏。
希望这是有道理的。如果您需要一些细节,可以尝试使用相关代码更新您的问题。