javascript - 事件未在动态生成的元素上触发

标签 javascript jquery jquery-events

我有一个表,在该表中,我在每一行的第一列中为用户提供了一个删除行的按钮,当用户在第一列上输入鼠标时动态生成删除按钮,这是代码

$('table').on('mouseover', "td.y-id", function () {
     $(this).append($('<a class="dlt-x" style="float: right; cursor: pointer; cursor: hand;"> <i class="fa fa-trash"></i> </a>'));
});
$('table').on('mouseleave', "td.y-id", function () {
    $('.dlt-x').remove();
});

然后我注册了一个点击删除按钮的事件

$('table').on('click', 'a.dlt-x', function () {
  alert("clicked");
});

并且此事件未触发。我查看了其他类似的问题并尝试了所有解决方案,找到了相关的委托(delegate)绑定(bind)但无法解决问题。

最佳答案

如果您正在触发动态元素。像下面这样使用

$('body').on('click',"#dynamic_element_id",function(){
   // you code
})

关于javascript - 事件未在动态生成的元素上触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44069268/

相关文章:

javascript - casperjs 填写表单不起作用

javascript - 响应式菜单,带有可点击的子菜单,可根据屏幕尺寸改变位置

javascript - JavaScript 中的条件错误处理

jquery - $.css ('transition' ,'value' ) 不起作用

javascript - 如何在 for... 循环中使用 setTimeout

javascript - mouseenter 离开导致 jQuery 中的闪烁

jquery - 使用/jQuery 触发自定义下拉列表

javascript - 在使用稍后提到的原型(prototype)的类中设置事件?

javascript - jQuery 过滤方法

javascript - d3.select...相当于 jQuery.children()