2011-02-16 75 views
0

有沒有辦法訪問成功回調中的設置?jQuery ajax調用

$('.chartsRefresher').change(
     function(){ 
      $.ajax({ 
       url: "/CampaignReportPostHandler.jsp", 
       data:({ 
        queryPage:$("ul.tabs li.active a").attr("href") 
       }), 
       success:function(d) 
       { 
        alert(settings); 
        var dataTest = d.substring(d.indexOf('(')); 
        eval(chartRenderer+"(eval(dataTest))"); 
       } 
      }); 
      return true; 
     } 
     ); 

我希望能夠得到queryPage是什麼時,ajax調用?

回答

1

首先定義你的數據:

$('.chartsRefresher').change(
     function(){ 
      var data = { 
       queryPage:$("ul.tabs li.active a").attr("href") 
      }; 
      $.ajax({ 
       url: "/CampaignReportPostHandler.jsp", 
       data: data, 
       success:function(d) 
       { 
        alert(data.queryPage); 
        var dataTest = d.substring(d.indexOf('(')); 
        eval(chartRenderer+"(eval(dataTest))"); 
       } 
      }); 
      return true; 
     } 
     ); 

而且如前所述,避免EVAL如果可能的話。

1

var聲明它們:

$('.chartsRefresher').change(function() { 
    var ajaxOpts= { 
     url: "/CampaignReportPostHandler.jsp", 
     data: { /* remove the parentheses around this object */ 
      queryPage: $("ul.tabs li.active a").attr("href") 
     }, 
     success: function(d) { 
      var queryPage = ajaxOpts.data.queryPage; 
      var dataTest = d.substring(d.indexOf('(')); 
      eval(chartRenderer + "(eval(dataTest))"); 
     } 
    }; 

    $.ajax(ajaxOpts); 
    return true; 
}); 

方問題:爲什麼你使用eval?

+0

我從服務器發送的json數據將被fusioncharts使用,它的唯一工作方式是在返回時評估它,一旦實施所提出的更改,我將擺脫外部eval。 – arinte 2011-02-16 19:31:00