当用户刷新页面时,会调用defaultView()
,这会加载一些UI元素。 $.address.change()
应在defaultView()
完成时执行,但这不会一直发生。 $.address.change()
无法在success:
回调中,因为应用程序会使用它来跟踪网址更改。
defaultView();
function defaultView() {
$('#tout').fadeOut('normal', function() {
$.ajax({
url: "functions.php",
type: "GET",
data: "defaultview=true",
async: false,
success: function (response) {
$('#tout').html(response).fadeIn('normal');
}
});
});
}
$.address.change(function(hash) {
hash = hash.value;
getPage(hash);
});
我不知道如何让$.address.change()
等待defaultView()
完成。任何帮助将不胜感激。
答案 0 :(得分:3)
在success
或complete
回调中调用它。使用delay
计时回调充其量是不可靠的。您甚至可能需要在fadeIn
回调内的success
函数的回调中对其进行调用。
不必在成功回调中定义,只是执行。两种情境仍然可以使用它。
答案 1 :(得分:2)
我也被告知,由于异步,你不能让javascript“等待” - 但是看到答案:D ......并且因为你正在使用jQuery,所以更好:
使用jQuery的绑定和触发器。我在How to get a variable returned across multiple functions - Javascript/jQuery
发布了类似问题的答案答案 2 :(得分:0)
一种选择是通过css隐藏$ .address(我猜这是一个下拉列表),并在ajax方法的成功回调中显示它。