2012-06-19 27 views
0

只有在设置变量后才尝试显示数据。在jQuery中设置.when和.done的函数序列

$("document").ready(function() { 
    function setdata() { 
     var mydata = '123'; 
    }; 

    $.when(setdata()).done(function() { 
     $(".content").text(mydata); 
    }); 
}); 
+0

设置变量已经是同步的,不需要使用'$ .when()'。 – lanzz

+0

我有一个似乎在变量设置之前运行的函数;我试图确保有一个正确的序列 – nathanbweb

+1

如果你有这样一个函数,它显然不会在你的'ready()'处理程序中被调用。 – lanzz

回答

2

你不需要$.when在这种情况下,因为你实际上并没有传递给它一个承诺对象。

$("document").ready(function() { 
    var mydata; 
    function setdata() { 
     mydata = '123'; 
    }; 

    setdata(); 
    $(".content").text(mydata); 
}); 

setdata做的比您在问题中展示的要多吗?我猜它确实是ajax请求,在这种情况下,它应该看起来像这样:

$("document").ready(function() { 
    function setdata() { 
     return $.ajax(ajaxOptions); 
    }; 

    setdata().done(function(mydata){ 
     $(".content").text(mydata); 
    }); 
}); 
+0

@lanzz只是一个简单的错字 –

相关问题