javascript - ajax 请求后新添加的按钮没有运行他应该运行的事件

标签 javascript jquery ajax

<分区>

我什至在点击按钮时也有 jQuery:

$('button.btn').on('click', function(form)

页面加载后的示例现有按钮:

<button id="5" class="yellow-button btn">Odpublicznij</button>

完美适用于类 btn 的所有按钮

但是在 ajax 请求之后 onclick 将新按钮添加到 html

content += '<button id="' + comments[i].id + '" class="green-button btn">Upublicznij</button>';

它添加了新的按钮,例如:

<button id="11" class="yellow-button btn">Odpublicznij</button>

这个新按钮甚至不会运行 $('button.btn').on('click', function(form) .

我需要它来举办这个事件,而不是仅仅作为一个什么都不做的按钮出现在这里

最佳答案

出现此问题是因为您刚刚附加的新元素没有附加点击处理程序。为了解决这个问题,您需要像这样更改选择器

$('body').on('click', 'button.btn', function(form) {
  //code goes here
});

我们在这里做的叫做Event Delegation .

关于javascript - ajax 请求后新添加的按钮没有运行他应该运行的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44890970/

相关文章:

Javascript 如果有类,警报 "yes",否则警报 "no"

javascript - 如何在 ShellJS 命令执行期间运行 cli-spinner?

javascript - Ajax 发送 FormData 并检索多维数组

php - 使用 Mysql 、 Jquery 和 Php 进行上下投票

javascript - 无法正确指定 CORS 请求的 header

javascript - jquery ajax - 在单击之后但在内容加载之前显示加载div?

javascript - 如何使用 Javascript 将没有 ID 的按钮设置为 “click”?

javascript - 无法在 IE 8 及以下版本中使用 jQuery 解析文件,因为它不是 XML(即使它有点像 XML)

javascript - jQuery - 在 DOM 更改后悬停

javascript - Jquery 每个按值排序