2012-10-05 6 views
1

jquery datatables 플러그인을 사용하고 있는데 첫 번째 행에 두 개의 링크가 있습니다. 이러한 링크는 클릭시 아약스를 보내는 데 사용됩니다. 데이터 테이블을 구현 한 이후 (나는 단지 테이블 만 가지고 있었다) 작동을 멈췄다. 나는 주위를 둘러 보았다 및 두 가지 시도했다 : 나는 원래 jquery Link가 Datatables에서 작동하지 않음

   $(".approveReject").click(function() { 
        OnApproveRejectClick("voavi", this); 
       }); 

을 가지고 있지만 성공

$(document).delegate("click", '.approveReject', function (event) { 
alert("clicked"); 
}); 

와 그래서는 데이터 테이블에 fnInitComplete 콜백을 추가하려고 것을 대체

을 init 객체 :

 "fnInitComplete": function() { 
      $(".approveReject").click(function() { 
       OnApproveRejectClick("voavi", this); 
      }); 
     } 

아직 아무것도 없습니다. 클릭이 전혀 작동하지 않습니다. 내 링크에 클릭 이벤트를 바인딩하기 위해 내가해야 할 일이 있습니까? 감사합니다

전체 데이터 테이블 초기화

$("#voaviTable").dataTable({ 
     "bJQueryUI": true, 
     "bScrollInfinite": true, 
     "bScrollCollapse": true, 
     "iDisplayLength": 30, 
     "sScrollY": "450px", 
     "oLanguage": { 
      "sSearch": "Filter: " 
     }, 
     "aaSorting": [], 
     "fnInitComplete": function() { 
      $(".approveReject").click(function() { 
       OnApproveRejectClick("voavi", this); 
      }); 
     } 
    }); 

테이블의 예를 행 :

<tr class="even"> 
<td class=" "> 
<a id="lnkApprove" class="approveReject" href="#">Approve</a> 
| 
<a id="lnkReject" class="approveReject" href="#">Reject</a> 
<span class="ui-icon ui-icon-circle-check" style="display: none;"></span> 
<span class="ui-icon ui-icon-circle-close" style="display: none;"></span> 
<img id="loaderGif" height="16px" style="display: none;" src="../../Content/images/loader.gif"> 
</td> 
<td class="statusID "> 32 </td> 
<td class="statusText "> new </td> 
<td class=" "> </td> 
<td class=" "> </td> 
<td class=" "> Cote de Blancs </td> 
<td class=" "> </td> 
<td class=" "> </td> 
<td class=" "> 
<td class=" "> 10/5/2012 2:54:05 PM </td> 
</tr> 
+0

확인 ... "fnInitComplete" –

+0

는 핸들러가 동일한 이벤트 –

답변

4

당신이 잘못 대리자를 사용하는

$(document).delegate('.approveReject', "click",function (event) {// <-- notice where the selector and event is 
    alert("clicked"); 
}); 

비록 당신이 jQuery를이 (CSTE 연구진 사용 1.7+ 사용하는 경우)

$(document).on("click", '.approveReject', function (event) { 
    alert("clicked"); 
}); 

가장 좋은 테이블에 이벤트를 바인딩하는 것이

$('#voaviTable').on('click','.approveReject', function (event) { 

$ (문서) .delegate (선택, 이벤트, 데이터를 (내가 추측하고있어) 가장 가까운 정적 부모 요소의로하지만, 매니저); // jQuery 1.4.3+

$ (document) .on (events, selector, data, handler); // jQuery를이 해고되는 1.7+

+0

감사합니다 사람에게 여러 번 구속되고있는 것 같은데! 나는 on을 사용해야한다는 것을 알고 있지만, jquery를 변경하고 모든 것을 테스트 할 시간이 없다. 당신의 솔루션은 효과가있었습니다! 감사 – user576838

관련 문제