【发布时间】:2017-10-14 04:12:50
【问题描述】:
我正在尝试在我的表中捕获触发事件的行的索引,如下所示:
<tr>
<td class="sorting_1" style="text-align:left;" width="10%">
<a class="btnWatchList" value="1"><i class="fa fa-edit"></i></a>
<a class="deleteBulkItem" value="2"><i class="fa fa-trash"></i></a>
</td>
</tr>
我做过这样的事情:
$("#datatable-responsive").delegate("tr", "click", function (e) {
var index = $(e.currentTarget).index(); // finding the column index
console.log($(e.currentTarget).index());
$('#datatable-responsive tr:eq('+index+') td:eq(2)').text('ChangedText'); // changing the text
});
所以这里是棘手的部分,我不希望事件仅在任何 TR CLICK 时触发,而是仅在 TR 中的特定按钮上触发,即元素:
<a class="btnEdit" value="1"><i class="fa fa-edit"></i></a>
然后,当我捕获触发事件的行的索引,然后更新该行的特定列时,谁的 HTML 标记如下所示:
<td class="sorting_1" width="60%">
<h5 ><b><a href="Title1Link" id="titleText" value="Titl1" id="linkText" target="_blank">Title1</a></b></h5>
<h6><b><a href="Title2Link" id="" target="_blank">Title2</a></b></h6>
</td>
所以现在一旦我找到触发事件的列的索引,我想首先将链接的文本设置为“已单击”或类似的内容,这样我才能知道它确实有效...
所以总结一下我在这里想要实现的目标:
获取触发
onclick事件的行索引(仅在btnEdit点击,而不是任何tr 点击)首先将链接文本更新为“已点击”
有人可以帮帮我吗?
【问题讨论】:
-
$("#datatable-responsive").delegate(".deleteBulkItem)", "click", function (e) { });像这样改变你的选择器
-
而只是 TR 中的一个特定按钮 - 如果您只想在该按钮单击时触发它,为什么不将单击事件绑定到该按钮?
-
@Pete 你能给我看一个简单的例子吗?
-
@Pete 如果你的意思是像 JYoThl 发布的那样,我就是这样做的,但我总是将索引作为值 0 ...?
-
@JYoThI 如果我这样做,那么对于任何点击的行,我总是得到 index = 0 ...?
标签: javascript jquery html onclick html-table