得到了一些解決的麻煩,但想問,也許這裏是另一種解決方案。這是一種情況。 got aspx頁面。用一些代碼隱藏功能,從數據庫中獲取數據。調用的函數和通過JQ在表中返回的數據。數據由服務器準備數學html格式。ie 7沒有在動態生成的標記上觸發事件
$.ajax({
type: "POST",
url: "somePage.aspx/foo",
data: "{ 'Id' : '" + ID + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
$("#brandTable").html(msg.d);
}
每個返回行正在尋找這樣的(這是):
<tr btcsId='152' id='btcsId_152' onclick='brandClick(9,24,152)'>
<td class='DataGridItem' style='padding:3px; margin:0;font-weight:bolder;'>something<input type='hidden' id='brandID_btcsId152' value='24' brandName='something'/></td>
</tr>
表格標記:
<table class="DataGrid" id="brandTable" style="padding: 0px; margin: 0px; width:100%;border-collapse:collapse;table-layout:fixed;word-wrap:break-word;" border = "0" cellspacing="0" cellpadding="0">
</table>
所以,問題是,該事件的onclick不只是在IE7解僱。 ie8,ie9正常工作。經過一番思考,我決定在表格填充後立即添加此代碼。換句話說,每一行重新啓動事件。
$("[id^='btcsId_']").each(function() {
$(this).click(function() {
var thisID = $(this).attr("id");
brandClick(specialityID,$("#"+thisID +" > TD > INPUT").val(),$(this).attr("btcsId"));
});
});
之後,它似乎工作正常。但它是正確的嗎?也許還有其他的方式?
試過這個解決方案。這與每個人使用我的工作是一樣的。無法檢查效率。但會依靠你的經驗。 – aleha 2012-02-27 11:54:12
@aleha不同之處在於,您只有一個事件處理程序,而不是每個元素都有一個事件處理程序:這是我認爲 – 2012-02-27 12:00:28
在ie8上檢查的正確方法。有雙重事件發生,那不是很好。必須從標記中刪除原生onclick =>修改.cs代碼 – aleha 2012-02-27 12:07:52