Aby*_*yss 5 javascript jquery json
var UsersMenu = function(){
this.returnUsers = [];
this.retrieve = function(posts){
var temp = [];
$.post("router.php", { "action": "getUsersMenu", "posts" : posts},
function(data)
{
if(data.response){
for(var i=0; i<data.returnUsers.length; i++){
temp.push(data.returnUsers[i]);
}
this.returnUsers = temp; // i know what 'this' is incorrect
}
}, "json");
alert(this.returnUsers);
}
}
Run Code Online (Sandbox Code Playgroud)
2个问题:
1.如何从jq对象(returnUsers)访问父'this'?
2.为什么jq post之后在jq post中发出警告之前会发出警报?
1如何从jq对象(returnUsers)访问父'this'?
你可以在一个闭包中捕获它:
var UsersMenu = function() {
this.returnUsers = [];
var self = this;
this.retrieve = function(posts) {
var temp = [];
$.post("router.php", { "action": "getUsersMenu", "posts" : posts },
function(data) {
if(data.response) {
for(var i = 0; i < data.returnUsers.length; i++) {
temp.push(data.returnUsers[i]);
}
self.returnUsers = temp;
}
}, "json");
}
};
Run Code Online (Sandbox Code Playgroud)
2为什么jq post之后在jq post中的某个警报之前调用时会发出警报?
因为AJAX是异步的.$.post发送AJAX请求的方法立即返回,但是当从服务器收到响应时,成功回调处理程序将在稍后执行.所以你不应该把警报放在这个成功处理程序之外.如果你想使用AJAX调用的结果,这应该只在结果可用的回调中发生.
| 归档时间: |
|
| 查看次数: |
242 次 |
| 最近记录: |