我正在使用jquery datatables插件,我在第一行有两个链接。这些链接用于在点击时发送ajax。由于我实现了数据表(我之前只有一个表),它停止了工作。我环顾四周,尝试了两件事:
我最初有
$(".approveReject").click(function () {
OnApproveRejectClick("voavi", this);
});
但用
替换了$(document).delegate("click", '.approveReject', function (event) {
alert("clicked");
});
没有成功,所以我尝试将fnInitComplete回调添加到datatable init对象:
"fnInitComplete": function () {
$(".approveReject").click(function () {
OnApproveRejectClick("voavi", this);
});
}
仍然没有。点击根本不起作用。知道我需要做什么才能将click事件绑定到我的链接?感谢
完整数据表init
$("#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 :(得分:4)
您使用的是委托错误的
$(document).delegate( '.approveReject', "click",function (event) {// <-- notice where the selector and event is
alert("clicked");
});
虽然如果你使用的是jQuery 1.7+,请使用.on()
$(document).on("click", '.approveReject', function (event) {
alert("clicked");
});
最好的事情是将事件绑定到您的表,因为它是最接近的静态父元素(我猜)
$('#voaviTable').on('click','.approveReject', function (event) {
$(document).delegate(selector,events,data,handler); // jQuery 1.4.3 +
$(document).on(事件,选择器,数据,处理程序); // jQuery 1.7 +