javascript - 将 jQuery 单击事件绑定(bind)到表格每一行上的每个 anchor 标记的最佳做法是什么

标签 javascript jquery

有一个列出用户的网格(只是 html 表),您可以通过单击删除链接来删除特定用户。我通常的做法是

<% foreach (var user in Model.Users) {%>
<tr >
  <td align="right"><%= user.Name %></td>
  <td><%= user.Level %></td>
  <td align="center">
    <a href="#" onclick="return deleteUser('<%= user.Name %>');">
        <%= Html.Image("trash.gif") %>
    </a>
  </td>
</tr>
<% )%>

但我想以一种不显眼的方式将点击事件附加到链接。我的意思是,我不想在标签内指定 javascript 方法。我不确定用 jQuery 实现它的最佳方法是什么,通过参数传递绑定(bind)多个 anchor 标记。

最佳答案

您可以使用 delegate()表上的方法:

$('#tableId').delegate('a', 'click', function(e) {
    e.preventDefault();
    // get the user name
    deleteUser($(this).closest('tr').children(':first').text());
    // or give the cell that contains the name a class
    // deleteUser($(this).closest('tr').children('.name').text());
});

这样,您只需注册一个事件处理程序。

关于javascript - 将 jQuery 单击事件绑定(bind)到表格每一行上的每个 anchor 标记的最佳做法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4124515/

相关文章:

javascript - Chrome 扩展程序内容脚本 javascript - run_at document_end 无法正常工作

javascript - 'onblur' 事件,遍历表单的所有字段,不给用户输入数据的机会

javascript - 我根据 jQuery 中的用户输入创建了一个网格(div),如何重置并重新开始

php - 为什么 Php Media Gallery 不工作?

jquery css 图片溢出隐藏左转

javascript - 四个选择选项框根据每个选择框选项动态变化

javascript - 如何在 Ionic/Angular 中添加 OAuth facebook 登录?

javascript - `$().clone(true)` 破坏 Chrome 扩展中的事件处理程序(适用于 jsbin)

javascript - 从 webView 中删除元素

javascript - 如何使 php 操作保留在此页面上,直到我使用 JQuery 退出?