javascript - 一种将变量(记录 ID)传递给 jQuery 事件监听器的方法?

标签 javascript jquery event-listener

假设我通过 PHP 在网页上生成一个记录列表,并假设每个记录旁边都有一个链接。假设当我单击链接时会弹出一个模式窗口,然后在模式中显示一个编辑表单。

我可以很容易地做到这一点,如下所示:

<a href="javascript:showEditModal(12345)">Edit</a>

但我更喜欢使用 jQuery 事件监听器:

<a class="edit" href="#">edit</a>

$('.edit').click(function(event) {
  showEditModal(recordId);
});

正如您所看到的,使用事件监听器,我无法知道用户想要通过模式编辑哪个记录。

如何允许用户指定要编辑的记录,同时仍使用编辑链接的事件监听器?

最佳答案

如果使用 jQuery >= 1.4.3,您可以在链接上指定“data-id”属性(HTML5!woohoo)并使用 jQuery 的 data() 方法获取它:

<script>
$(function() {
  $('a.edit').click(function() {
    alert( $(this).data('id') );
  });
});
</script>
<a href="#" class="edit" data-id="12345">edit</a>

here's a demo on jsFiddle .

关于javascript - 一种将变量(记录 ID)传递给 jQuery 事件监听器的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4473405/

相关文章:

javascript - 避免循环内循环

jquery - 使用 jQuery 模板动态创建 jQuery Mobile 页面

javascript - 即使在包含 popper.js 之后仍然得到 "Uncaught Error: Bootstrap dropdown require Popper.js"

java - 没有组件的事件监听器

javascript - 在离开页面之前删除事件监听器

javascript - jCarouselLite 自动滚动响应变化

PHP Cookie 不会设置

android - GestureDetector 上的 OnUp 事件

Javascript 不更新 img

javascript - 将 textarea 发送到 php 但 "+"转换为空格