首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将变量绑定到jQuery getJSON调用?

如何将变量绑定到jQuery getJSON调用?
EN

Stack Overflow用户
提问于 2013-05-06 17:59:31
回答 2查看 1.7K关注 0票数 2

我需要从jQuery JSON调用访问一个外部本地变量,而不将该变量发送到服务器(因此不使用data参数):

代码语言:javascript
运行
复制
for (var prop in channels) {
    $.getJSON(url).done(function(json) {
        channels[prop].value = ...;
    });
}

不幸的是,随着外部循环的继续,prop变量会发生变化。

是否可以将变量绑定到getJSON调用?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-06 18:52:38

好了,找到了基于jQuery's proxy function的答案

代码语言:javascript
运行
复制
for (var prop in channels) { 
    $.getJSON(url).done(
        $.proxy(function(json) { 
            channels[this._prop].value = ...; 
        }, {_prop: prop}
    ); 
}

本质上,$.proxy()创建了一个包装器函数,该函数接受附加的context参数,并确保将其作为this传递给包装函数。

票数 3
EN

Stack Overflow用户

发布于 2017-06-28 21:58:52

与js :bind一起使用:

代码语言:javascript
运行
复制
for (var prop in channels) {
    $.getJSON(url).done(function(json) {
        channels[this].value = ...;
    }.bind(prop));
}

$.ajax context的用法:

代码语言:javascript
运行
复制
for (var prop in channels) {
    $.ajax({
        url: url, 
        dataType: 'json', 
        context: param, 
        success: function(data) {
            channels[this].value = ...;}
        })
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16396260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档