如何在 JQuery 中为动态创建的具有相同类名的链接添加事件侦听器?

史蒂夫·史密斯

过去几天我一直在努力让一些代码工作。我一直在研究这个话题,并缩小了我认为正在发生的事情的范围。我有一个程序可以根据用户操作动态创建链接。

   <div id="parent><a class="delete-row" id="wow" href="javascript:void(0)">Del</a></div>

现在的问题是,与页面一起加载的初始页面加载得很好。创建的任何后续链接都不起作用,因为据我所知,仅在页面加载时才加载侦听器。这解释了为什么第一个有效,但任何后续链接在单击时都不会在 DOM 中触发。

我根据我在互联网上找到的教程尝试了下面的代码。

  $(document).ready(function () {
     $('.add-row').on('click', function(){
      $('<a class="delete-row" href="javascript:void(0)">Del</a>').appendTo('#parent');
      });
    });

  $(document).ready(function () {
     $("#parent").on('click', 'a', function() {
      console.log("Clicked.");
      });
    });

它无法识别父点击。我唯一想知道的是,链接都是相同的这一事实是否会阻止它们在第一个之后被识别?

预先感谢您为我指明正确的方向。我的理解是 append 函数应该在单击 add=row 类名时添加侦听器......它确实起作用......只是父块不起作用。

某些表演

您动态添加的元素需要添加为具有侦听器的父元素的后代。尝试改变

.appendTo('body');

.appendTo('#parent');

因为#parent有听众。(身体没有听众。)

演示:

$(document).ready(function() {
  $('.add-row').on('click', function() {
    $('<a class="delete-row" href="javascript:void(0)">Del</a>').appendTo('#parent');
  });
});

$(document).ready(function() {
  $("#parent").on('click', 'a', function() {
    console.log("Clicked.");
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button class="add-row">add row</button>
<div id="parent"><a class=" delete-row " id="wow " href="javascript:void(0) ">Del</a></div>

另一种方法是将侦听器附加到主体上。

$('body').on('click', '.delete-row', () => {
  // ...
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用jQuery将事件侦听器添加到动态添加的元素中

如何从父级中删除jQuery事件侦听器而不删除类似的侦听器?

如何在jquery的sweetalert对话框中为html按钮添加事件侦听器

如何在javascript中为所有事件添加事件侦听器而不单独列出它们?

如何将事件侦听器添加到具有相同类的多个输入中

如何从任何jquery对象中获取具有相同类名的所有元素?

如何在jQuery中为前置元素创建事件

如何在类内的html中添加具有函数回调的事件侦听器?

如何在jQuery中的复选框数组上设置侦听器?

如何在Jquery中多次调用函数以添加事件侦听器,而不仅仅是侦听最后一个?

如何使用jquery .each()添加单个事件侦听器?

jQuery:如何在具有相同类名的多容器内应用相同的更改

jQuery-如何为动态添加的可放置表格行实现事件侦听器?

如何获取Jquery事件侦听器以使用div链接?

如何为没有JQuery动态创建的元素创建事件侦听器

如何在jQuery中将值插入具有相同类名的文本框

jQuery中的多个链接的.on('click')事件侦听器

jQuery-将事件侦听器添加到动态创建的按钮

jQuery DataTables的on()事件侦听器,具有多个事件

如何在jQuery中创建链接

如何在 jquery 中动态创建事件处理程序

Jquery - 如何在文档区域中选择具有相同类名的 2 个元素?

如何使用Jquery检查Rails中具有相同类名的多个元素中的on change事件

如何在尚未在 DOM [no-jQuery] 中的元素上添加事件侦听器?

反应。如何在创建的侦听器中删除事件侦听器?

如何使用 jQuery 在类构造函数上添加事件侦听器?

如何等待自定义 jQuery 事件的所有侦听器执行?

如何在 Javascript 中添加带有 HTML 模板文字的事件侦听器?

jQuery - 如何创建具有相同类名但不同编号的变量和单击事件