如果break
响应为空,我正在尝试return false
/ $.post()
:
....
$('#order_list li > div').remove(); // is to remove `no_data` or `search_box` when clicking on the next `li`
$.post('do.php', { OP: "news_search", category: cat_id },
function(data_response){
console.log(data_response); //outputs null if nothing retrieved, or data if otherwise
if(data_response==null) //stop code if the response is null
{
alert('if works');
$(this).append(no_data).show('slow');
return false; // doesn't do the trick
}
}, "json");
//if not null, continue with this
if( ! $('.search_box').exists())
{
$(this).append(search_box).show('slow');
}
....
但正如你所读到的,我的代码并不能解决问题。有任何想法吗?
if(data_response==null)
有效,return false
不能正常工作
答案 0 :(得分:3)
AJAX中的A用于异步。
当你到达想要检查的位置时,它已经执行了。
首先运行此代码:
$.post('do.php', { OP: "news_search", category: cat_id }, callback, "json");
这会向服务器发出XmlHttpRequest。我故意只写callback
,因为函数只是作为参数传递。 仅在服务器响应时运行。到那时,代码的其他部分已经运行。
$.post()
- 致电服务器答案 1 :(得分:1)
$.post('do.php', { OP: "news_search", category: cat_id },
function(data_response){
console.log(data_response);
if(data_response)
{
$(this).append(no_data).show('slow');
// return false; NOT NEEDED
} else {
// below condition should remain here, not outside of Ajax
if( ! $('.search_box').exists()){
$(this).append(search_box).show('slow');
}
}
}, "json");
答案 2 :(得分:0)
人们通常会验证以下内容:
if (foo == null) {
foo = "Joe";
}
当他们真正的意思是
if (!foo) {
foo = "Joe";
}
因为null是一个对象而且==确实输入了强制。
本文中的更多信息:JavaScript undefined vs. null