您的位置:首页 > Web前端 > JQuery

jQuery.when().done()

2017-01-18 17:00 197 查看
在使用jQuery.when()调用外部声明方法时,如果方法不为Deferred(延时)对象,则done会立即执行,所有需要在调用的方法声明一个var deferred = $.Deferred();以达到执行完调用的方法后再执行done。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>jQuery when done</title>
<script src="../jquery/jquery.min.js"></script>
</head>
<body>

<script>
$(function () {
var ajaxGetData = function(){
//声明延时对象
var deferred = $.Deferred();
$.ajax({
url: '',
type: 'get',
dataType: 'json',
data:{},
success:function(data){
alert("执行when成功,下一步才执行done");
//成功获取返回值后,调用resolve表示操作成功,才会执行done方法
deferred.resolve();
},
error:function(){
alert("操作异常");
}
});
return deferred;
}
$.when(
ajaxGetData()
).done(
function() {
alert("执行done成功");
}
);
})
</script>

</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: