2014-03-27 64 views
0

當我在asp.net中使用c#創建html標記時,我遇到了JavaScript問題。 我無法通過javascript中的id或classname訪問我的標記。我無法通過javascript中的id或classname訪問我的標記

在C#:

foreach (DataColumn col in dt.Columns) 
{ 
    dx = Convert.ToString(row[col]); 
    dy = "<div class='dsearch'>" + dx + "</div>" + dy; 
} 

在Javascript中

$(document).ready(function() { 
    $('.dsearch').click(function() { 
     alert("aaaaaa"); 
    }); 
}); 

當我點擊網頁中的這個標籤沒有反應,沒有任何反應。但是,如果我在html頁面中使用html代碼創建標籤,它效果很好。

+1

是否在頁面加載後通過JavaScript創建元素? –

+1

您可以嘗試現場活動 - '$(文件)。在(「點擊」,「.dsearch」,函數(){})' – Nick

+1

你看你的網頁源並驗證標籤在那裏?如果它是使用Web控件創建的,則客戶端ID可能與您爲ASP.NET控件設置的ID不同。 –

回答

1

由於您動態生成並將HTML插入到DOM中,我的猜測是事件偵聽器永遠不會被連接。 JQuery確實有on()方法(在舊版本中正式是live()方法)。像這樣重寫click事件監聽器,它應該可以工作:

$(document).on('click', '.dsearch', function (e) { 
    // past click event code 
}); 
相關問題