2014-11-02 76 views
0

我有以下功能:如何添加額外的參數getJson回調?

$.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) { 
      ... 
     }); 
    } 
+0

我想使這樣的東西:http://stackoverflow.com/a/26698262/2674303 – gstackoverflow 2014-11-02 11:36:51

+0

我不能從回調調用它,因爲在回調執行時externalFunction()可以返回另一個值。實際值 - 在請求發送時。 – gstackoverflow 2014-11-02 11:40:24

回答

1

也許你需要的是建立一個封閉:

var newParam = externalFunction(); 

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

的關閉將剛捕獲時$.getJSON被稱爲的newParam值。

+0

http://jsfiddle.net/pen128tg/14/ – gstackoverflow 2014-11-02 12:10:49

+0

我想看到1在警報 – gstackoverflow 2014-11-02 12:12:44

+0

http://jsfiddle.net/dbwrge14/3/ – gstackoverflow 2014-11-02 12:19:38

0
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;

+0

這個函數可以調用很多次。我想這樣我會得到新鮮的價值 – gstackoverflow 2014-11-02 11:51:17

+0

這個代碼:var index,_i; (函數(){ 返回日誌(索引); },1000);以及對於(索引= _i = 0; _i <10;索引= ++ _ i) }返回10很多時間 – gstackoverflow 2014-11-02 11:52:55

+0

http://jsfiddle.net/x3wfbxr3/1/ – gstackoverflow 2014-11-02 11:53:43

相關問題