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/

相关文章:

jQuery 的 .removeClass() 不会在移动设备上更新 DOM 中的 CSS

JQuery 实时点击在带标签的 IE 中不起作用

c# - 向 ASP 控件添加自定义事件

javascript - 请求的资源错误上不存在 'Access-Control-Allow-Origin' header 。请求成功但触发失败

php - 根据单击哪个链接更改隐藏的 div 的内容

php - ajax 加载数据后 Shadowbox 不工作

jquery - 总是转到上一页的顶部?

javascript - 对 id 的 Angular 点击应该路由到不同的页面

php - JS禁用时页面内容不同

javascript - 在 Chrome 中,警报在执行弹出窗口之前不会显示 HTML