0
我希望在“返回false”行后停止执行javascript代码,但它不会。
我的英语很差。如果有人了解我,请提高我的问题谢谢!
$('#category-list input').blur(function(){
var $$ = $(this), $p = $$.prev();
if ($$.val() != $p.html()) {
var data = {'key':$$.attr('name'),'value':$$.val()};
$.post('<?php echo Url::to(['field']); ?>', data).done(function(result){
if (result != 'ok'){
alert(result);
return false; /*i need it stop at here!!!!!! but it not*/
}
});
alert(3);
$p.html($$.val());
}
$$.hide();
$p.show();
});
你要警惕(3)你从服务器的响应后得到执行?你希望$$。hide()在你从服务器得到响应后得到执行吗?等等。请你让我们知道哪些代码应该执行或不应执行 – Don
$ .post()在它自己的时间内异步执行,而不会阻塞周围的代码。该代码根本就不在它被写在订单执行完全的'警报(3);'总是将'.done之前执行(功能(结果){...})'调用回调函数。这类行为的一个很好的解释可以在“[如何返回从异步调用的响应?](http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-找到异步调用)“ –
在另一个函数中声明一个函数完全不会影响外部函数。考虑:'function outer(){function inner(){return 42; };返回21; }'。你认为'outer()'会返回什么? –