해결 된 문제가 있지만 물어보고 싶은데, 다른 해결책이 있습니다. 여기에 상황이 있습니다. aspx 페이지가 있습니다. 일부 코드 숨김 기능을 사용하면 DB에서 데이터를 가져옵니다. 테이블에서 JQ를 통해 호출 된 함수 및 데이터. 서버가 수학 html 형식으로 준비한 데이터. (그대로)즉 동적으로 생성 된 마크 업에서 이벤트를 발생시키지 않습니다.
$.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 잘 작동합니다. 몇 가지 생각을하고 나자마자이 코드를 즉시 추가하여 테이블 채우기를 결정했습니다. 즉, 각 행에 대해 이벤트를 reinit하십시오.
가 잘 작동 보인다 후 것을$("[id^='btcsId_']").each(function() {
$(this).click(function() {
var thisID = $(this).attr("id");
brandClick(specialityID,$("#"+thisID +" > TD > INPUT").val(),$(this).attr("btcsId"));
});
});
. 하지만 맞습니까? 어쩌면 다른 방법이 있을까요?
이 해결책을 시도했습니다. 그것은 각각과 함께 광산을 사용하는 것과 같은 작업입니다. 효율성을 확인할 수 없습니다. 그러나 당신의 경험에 의존 할 것입니다. – aleha
@aleha 차이점은 각 요소에 대해 하나의 이벤트 처리기를 사용하는 대신 하나의 이벤트 처리기 만 있다는 것입니다. 이것이 바로 접근 방식입니다. –
ie8에서이를 확인하십시오. 더블 이벤트 화재, 좋은 looing하지. 마크 업에서 네이티브 onclick을 제거해야합니다.>> .cs 코드 수정 – aleha