我正在使用此脚本尝试设置div的可见性样式并将其存储为站点范围内的cookie。我的理解是path = /应该将cookie设置为存储在根目录,从而可用于所有页面 - 将值传递给其他页面,以保持div的可见性,可见或隐藏,具体取决于用户偏爱。但是,检查输出时,似乎cookie只是按页面存储'。我错过了什么?我已将脚本放在标题中,并将其加载到我的wp主题的每个自定义帖子/页面上。 (省略) - 页面左上方有一个切换按钮,显示/隐藏评论。
// Placed above </head> tag on my header-webmockups.php file
<script type="text/javascript">
$( function () {
var toggle = $( '.toggle' );
var comments = toggle.find( '.comments' );
if ( $.cookie( 'divState' ) == 'visible' )
comments.show();
else
comments.hide();
toggle.find( 'a' ).click( function () {
if ( comments.is( ':visible' ) )
$.cookie( 'divState', 'hidden' );
else
$.cookie( 'divState', 'visible' );
comments.toggle();
} );
} );
$.cookie( "divState", 1, {
expires: 10000
} );
</script>
// Placed at the top of my comments.php loop (toggle div closes after page content)
<div class="toggle"><a>Show/Hide Comments</a>
// Placed after <?php wp_head(); ?> of post's custom header.php
<?php wp_enqueue_script("jquery-cookie", get_stylesheet_directory_uri().'/js/lib/jquery.cookie.js', array( 'jquery' ), '0'); ?>
答案 0 :(得分:0)
您需要在Cookie中添加过期日期。 例如
$.cookie("test", 1, { expires : 10000 });
正如我从您的网址和代码中看到的那样,您尚未设置它,它仅适用于当前会话。
因此,毕竟你的脚本块应如下所示:(完全删除当前块并粘贴此块)
<script type="text/javascript">
jQuery( function ($) {
var toggle = $( '.toggle' );
var comments = toggle.find( '.comments' );
if ( $.cookie( 'divState' ) == 'visible' )
comments.show();
else
comments.hide();
toggle.find( 'a' ).click( function () {
if ( comments.is( ':visible' ) )
$.cookie( 'divState', 'hidden', {expires: 10000, path: '/'} );
else
$.cookie( 'divState', 'visible', {expires: 10000, path: '/'} );
comments.toggle();
} );
} );
</script>