Javascript 如果用户未登录,则发送警报消息
如果需要用户登录,但同时避免ajax调用,那么向用户发送警报消息的最佳方式是什么?我可能有类似于Javascript 如果用户未登录,则发送警报消息,javascript,jquery,login,Javascript,Jquery,Login,如果需要用户登录,但同时避免ajax调用,那么向用户发送警报消息的最佳方式是什么?我可能有类似于的代码,它会根据单击触发ajax函数。我想我会在服务器端检查用户是否登录,并将其替换为: 。如果单击该按钮,则会提醒他们需要登录。问题是,我可能有一些css样式用于投票。如果我改为,它将触发ajax调用和警报,因此我必须检查ajax调用是否不存在not loggin in类,但对于所有具有ajax调用的click函数,这样做似乎有点乏味。或者调用父id并将样式设置为#parentId a{}?还是有更
的代码,它会根据单击触发ajax函数。我想我会在服务器端检查用户是否登录,并将其替换为:
。如果单击该按钮,则会提醒他们需要登录。问题是,我可能有一些css样式用于投票。如果我改为
,它将触发ajax调用和警报,因此我必须检查ajax调用是否不存在not loggin in类,但对于所有具有ajax调用的click函数,这样做似乎有点乏味。或者调用父id并将样式设置为#parentId a{}?还是有更好的方法?我不知道人们通常做什么,所以我想听听他们的意见。谢谢 这个怎么样:
HTML:
<body class="not-logged-in"> -- or -- <body class="logged-in">
<a href="/vote/13" class="vote">Vote!</a>
如果
a#vote
元素的点击处理程序绑定到vote
id,则必须更改已注销用户的id或向点击处理程序添加条件
您提到,在继续进行AJAX调用之前,您不想检查未登录的类,因此我假设这意味着您宁愿不使用click处理程序,而是想出其他方法使链接看起来像投票链接,而不是像投票链接
您可以创建一个备用id并为其提供相同的样式,如下所示:
HTML:
<a href="#" id="fakeVote">
CSS:
#vote, #fakeVote {
/* CSS here */
}
#投票,假装投票{
/*CSS在这里*/
}
这样做的好处是,您可以为a#fakeVote
元素添加一个新的click处理程序,以提醒注销的用户。如果您想通过每次单击减少DOM查找时间,只需将“loggedIn”类附加到body元素,并在页面加载后立即执行检查
var loggedIn = $('body').hasClass('loggedIn');
现在,您不必检查链接本身,而是检查该变量
或者,为ajax调用编写一个包装器
$.fn.ajaxLoggedIn = function() {
if (loggedIn) {
$.ajax.apply(this, arguments);
}
else {
alert('You are not logged in');
}
}
谢谢,我没想过那样做。
$.fn.ajaxLoggedIn = function() {
if (loggedIn) {
$.ajax.apply(this, arguments);
}
else {
alert('You are not logged in');
}
}