我是新来的,正在寻找能否得到答案。
为什么变量适用于第一个if语句,而不是单击函数?
var Page = $.cookie('Page')
$(function () {
if (Page == '0') $('.mainmenu #active').addClass('disable');
$('.pageback').click(function () {
if (Page == '1') $('.mainmenu #active').addClass('disable');
}); // disable menu navigation
$('.pagenext').click(function () {
if (Page == '0') $('.mainmenu #active').removeClass('disable');
}); // disable menu navigation
});
答案 0 :(得分:0)
从Cookie中分配Page
变量一次。
var Page = $.cookie('Page')
但是,从未更改,因此在更改cookie 和页面刷新之前,该值将保持不变。也就是说,Page
变量的赋值仅在求值时发生。它相当于说var Page = 'x'
,其中x是给定时间点cookie的值。
虽然在更新cookie时仍然无法更新类(需要设置cookie并且然后需要进行点击),请考虑使用可用于推迟评估而不是变量的函数。另请注意其他变化。
$(function () {
function pageNo () {
return parseInt($.cookie('Page'), 10) || 0;
}
var menu = $('.mainmenu #active');
if (pageNo() == 0) menu.addClass('disable');
$('.pageback').click(function () {
if (pageNo() == 1) menu.addClass('disable');
}); // disable menu navigation
$('.pagenext').click(function () {
if (pageNo() == 0) menu.removeClass('disable');
}); // disable menu navigation
});
为了确保在更改cookie时更改类,jQuery事件可能很有用(cookie插件是否默认支持?)来触发更新。我使用KnockoutJS并发现它使这种依赖管理变得容易。