【问题标题】:how to add additional argument to getJson callback? [closed]如何向 getJson 回调添加附加参数? [关闭]
【发布时间】:2014-12-29 04:46:09
【问题描述】:

我有以下功能:

  $.getJSON( "ajax/test.json", function( data ) {
      var items = [];
      $.each( data, function( key, val ) {
       ...
    });
}

如何将附加参数传递给函数?

我想要这样的东西:

var newParam = externalFunction();
$.getJSON( "ajax/test.json", function( data,newParam ) {
          alert(newParam);
          $.each( data, function( key, val ) {
           ...
        });
    }

【问题讨论】:

  • 我想做这样的事情:stackoverflow.com/a/26698262/2674303
  • 我不能从回调中调用它,因为在回调执行时 externalFunction() 可以返回另一个值。实际值 - 在请求发送的那一刻。

标签: javascript jquery callback arguments


【解决方案1】:

也许你需要的是创建一个闭包:

var newParam = externalFunction();

$.getJSON('http://date.jsontest.com/', (function (newParam) {
    return function (data) {
      alert(newParam);
      $.each( data, function( key, val ) {
       ...
      });
    }}(newParam)));

闭包将在调用$.getJSON 时捕获newParam 的值。

【讨论】:

【解决方案2】:
var newParam = externalFunction();

$.getJSON( "ajax/test.json", function( data) {
              alert(newParam); //in this case newParam is available
              $.each( data, function( key, val ) {
               ...
            });
       });

http://www.w3schools.com/js/js_scope.asp;

【讨论】:

  • 这个函数可以被调用很多次。我想这样我会得到新的价值
  • 这段代码:var index, _i; for (index = _i = 0; _i
  • 预期结果:0 1 2 3 4 5 6 7 8 9
  • 你想做什么?到匿名函数触发时,全局范围索引将始终为 10;
猜你喜欢
  • 2014-12-29
  • 2013-12-18
  • 1970-01-01
  • 2011-09-15
  • 2013-01-29
  • 1970-01-01
  • 2015-08-27
  • 2012-10-25
  • 1970-01-01
相关资源
最近更新 更多