2011-05-27 50 views
0

在我的情況下,我正在做一個Ajax請求來獲取一些數據,然後將其結果傳遞給一些函數,你可以看到代碼。嵌入HTML包含JavaScript函數沒有被調用

$.ajaxSetup({ cache: false }); 
    $.ajax({ 
     url: chartUrl, 
     type: 'GET', 
     dataType: 'text', 
     success: function(result){ 
      UpdateChartArea(result, chartType); 
      if(isTextMining){    
         eval('ShowBreadCrmb_'identifier.substring(1) + '();'); 
      } 
     }, 
     error: function(req, status, error) { 

     } 
    }); 

在嵌入HTML之後,我想調用一個在該HTML中的JS函數。我很嵌入HTML存在於用戶的控制,有一個唯一的實例,這是我的表演麪包屑方法看起來怎麼樣

function ShowBreadCrmb_<%= reportScale.ScaleID %>() 
    { 
    alert('LHJLH'); 
     var isTextMining = <%= TextMiningChart %>; 
     if(isTextMining) 
     { 
      CreateTmBreadCrumb('<%= reportScale.NodeLevel %>','<%= reportScale.NodeName %>',topicList) 
     } 
    } 

更多信息什麼我updatechartarea確實是

if (parent) { 
    clearChildren(parent); 
    var div = document.createElement("div"); 
    div.innerHTML = html; 
    parent.appendChild(div); 
} 

在更新圖表區域函數被調用後,我想調用麪包屑函數。

+0

你是否得到任何JS錯誤..你可以檢查錯誤控制檯/ firebug在firefox – Ankur 2011-05-27 06:03:22

+0

@Ankur我得到一個js錯誤,ShowBreadCrmb_103找不到。 – ankur 2011-05-27 06:07:11

+0

好的..你可以檢查「查看源代碼」這個方法「ShowBreadCrmb_103」是否存在於HTML中的腳本標籤裏 – Ankur 2011-05-27 06:08:27

回答

0

我只是將ShowBreadCrmb_...的函數定義更改爲在右括號}後面加上括號。這應該在定義它之後立即調用它。

例如

function ShowBreadCrmb_<%= reportScale.ScaleID %>() 
{ 
alert('LHJLH'); 
    var isTextMining = <%= TextMiningChart %>; 
    if(isTextMining) 
    { 
     CreateTmBreadCrumb('<%= reportScale.NodeLevel %>','<%= reportScale.NodeName %>',topicList) 
    } 
}(); 

這是否行得通?

+0

不,它不工作它給我同樣的錯誤ShowBreadCrmb_119未定義 – ankur 2011-05-27 06:16:30

+0

javascript函數是否完全有效?即如果您在使用Firebug替換HTML之後檢查它,是否是ShowBreadCrmb_119()函數完全有效的Javascript? – GregL 2011-05-27 06:26:15

+0

你的意思是完全有效的請指定? – ankur 2011-05-27 07:06:23