如何使用jQuery根据烧杯会话状态显示div?

如何使用jQuery根据烧杯会话状态显示div?,jquery,bottle,beaker,Jquery,Bottle,Beaker,内容通过jQuery Ajax加载到main\u Content区域 在主内容区域之外是一个登录链接 点击此链接可在主内容区域加载表单,提交表单时,可使用烧杯进行登录授权。成功后,将在main\u content区域加载一个管理页面 成功授权后,我想将登录链接更改为注销链接 是否有一种方法可以根据烧杯中的会话状态显示/隐藏div,例如: if (beaker.session.id) { $('#login').hide(); $('#logout').show(); } 我会在

内容通过jQuery Ajax加载到
main\u Content
区域

主内容
区域之外是一个
登录
链接

点击此链接可在
主内容
区域加载表单,提交表单时,可使用烧杯进行登录授权。成功后,将在
main\u content
区域加载一个管理页面

成功授权后,我想将
登录
链接更改为
注销
链接

是否有一种方法可以根据烧杯中的会话状态显示/隐藏div,例如:

if (beaker.session.id) {
    $('#login').hide();
    $('#logout').show();
}
我会在处理成功登录的jQuery块中调用它,然后在处理注销的块中交换div

编辑

在Firebug中,在登录
POST
响应中,我进入
“Cookies”>“Received Cookies”
,可以看到以下列表:

beaker.session.id
如果我右键单击此链接并选择
“在命令行中使用”
,则命令行区域会弹出以下内容:

$p
如果随后在Firebug命令行区域中运行以下命令,我将获得一个带有指定消息的警报弹出窗口:

if ($p) {alert("you have an id!")}
因此,我尝试将此添加到处理登录的代码中,但没有收到警报:

<script>
$(document).on("submit","#login", function (e) {
e.preventDefault();
$.ajax({
type: 'POST',
url: '/login',
data: $(this).serialize(),
dataType: 'json',
success: function(results) {
$("#main_content").html("");
$("#main_content").append(results.content);
href = results.title;
history.pushState('', 'New URL: '+href, href);
reinit1();
reinit2();
reinit3();
if ($p) { // <-- here is the alert
alert("Yes you have an ID!")
}
}
});
});
</script>

我找不到如何访问
bicker.session.id
cookie的解决方案,所以我只是在登录成功时创建了一个,然后创建了一个if语句,如果新创建的登录存在,它将显示
logout
链接(我将在注销时删除cookie以反转过程):


//登录处理如上所示
reinit1();
reinit2();
reinit3();
$.cookie('已登录','是',{path:'/'});//设置cookie并分配名称和值
如果($.cookie('logged-in')==“YES”){//请检查cookie的值
$('.login').hide();
$('.logout').show();
}
}
}
});
});

发布ajax部分并登录html代码
ReferenceError: $p is not defined
<script>
// login processing as shown above
reinit1();
reinit2();
reinit3();
$.cookie('logged-in', "YES", { path: '/'}); // set cookie and assign name and value
if ($.cookie('logged-in') == "YES") { //  check the value of the cookie
$('.login').hide();
$('.logout').show();
}
}
}
});
});
</script>