Javascript Check Login函数返回false,但是否继续到下一行?
以下代码检查用户,如果用户未登录,则返回falseJavascript Check Login函数返回false,但是否继续到下一行?,javascript,jquery,return,Javascript,Jquery,Return,以下代码检查用户,如果用户未登录,则返回false function checkLogin(e) { loggedIn = $('#loggedin').text(); if(loggedIn == '1'){ e.preventDefault(); alert("Please Log In"); return false; } } 然后在调用其他代码和ajax调用之前调用此函数 tileFavorite = $('.tile
function checkLogin(e) {
loggedIn = $('#loggedin').text();
if(loggedIn == '1'){
e.preventDefault();
alert("Please Log In");
return false;
}
}
然后在调用其他代码和ajax调用之前调用此函数
tileFavorite = $('.tileFavorite');
tileFavorite.on('click', function(e) {
checkLogin(e);
//some code goes here before ajax call
$.ajax({
url: // ajax call goes here,
cache: false
})
});
检查登录实际上是有效的。但是,如果checkLogin函数返回false,它仍将继续执行下面的代码。有办法避免这种情况吗?试试这个
tileFavorite.on('click', function(e) {
if(false == checkLogin(e)){
return false;
}
//some code goes here before ajax call
$.ajax({
url: // ajax call goes here,
cache: false
})
});
单击tileFavorite应返回值以停止执行。看起来您并没有对实际返回的
false
执行任何操作。你可以试试:
if (checkLogin(e)) {
...
$.ajax(
...
);
}
您没有采取任何措施阻止调用该代码 尝试:
这是因为返回false用于checkLogin函数。但是你的tileFavorite的点击功能仍然在执行,因为它还没有达到返回值。是的,很好,很有意义。有点“无聊”的时刻。再次感谢!谢谢你的重播,有点太晚了!
function checkLogin(e) {
loggedIn = $('#loggedin').text();
if(loggedIn == '1'){
e.preventDefault();
alert("Please Log In");
return false;
}
return true;
}
tileFavorite.on('click', function(e) {
if (! checkLogin(e))
return false;
//some code goes here before ajax call
$.ajax({
url: // ajax call goes here,
cache: false
})
});