在我的页面上,我想检查用户是否已登录,如果他已登录,那么我允许用户执行各种操作(例如上传如下所示的照片)。为了检查用户是否登录,我在 jquery 中编写了这个简单的函数。
$(document).ready(function(){
function checkLogin(callback){
<% if !current_user %>
$.colorbox({href:"/signup", width: "400px", height: "200px"});
var status = false;
callback(status)
<% end %>
}
当我想检查用户是否登录时,我调用上面的代码:
$(".upload-pics").click(function(){
checkLogin(function(c){
if(c == false){
return false;
}
});
// open colorbox to upload pictures
$("a.upload-pics").colorbox();
})
问题是每次我调用 checkLogin 并说如果用户没有登录,“返回 false”并没有阻止其余代码执行,这意味着上传图片的颜色框代码无论如何都会被触发。真正奇怪的部分是“return false”确实被执行了,但这并没有阻止其余代码的执行。我的代码有问题吗?谢谢。