javascript - 加载动态内容后 jQuery 函数不起作用

标签 javascript jquery ajax twitter-bootstrap

我正在使用下面的代码。这是 bootstrap 3 删除确认消息。

$(document).ready(function(){

$('a.btnDelete').on('click', function (e) {
    e.preventDefault();
    var id = $(this).closest('div').data('id');
    $('#myModal').data('id', id).modal('show');
});

$('#btnDelteYes').click(function () {
    var id = $('#myModal').data('id');
    var dataString = 'id='+ id ;
    $('[data-id=' + id + ']').parent().remove();
    $('#myModal').modal('hide');
    //ajax
    $.ajax({
type: "POST",
url: "delete.php",
data: dataString,
cache: false,
success: function(html)
{
//$(".fav-count").html(html);
$("#output").html(html);
}
});
//ajax ends
});
});

这是我正在使用的触发元素

<div data-id="MYID"><a class="btnDelete" href="#">Delete</a></div>

我动态地使用相同的 HTML 元素来触发删除,但它不起作用。

有人可以指出我正确的方法吗?

最佳答案

您必须使用事件委托(delegate)

$(document).on("click" , '#btnDelteYes' ,function () {

差不多:将点击绑定(bind)到脚本运行时存在的某个东西上,当点击该东西时,告诉它将点击事件传递给 #btnDelteYes 元素

由于缺少信息,我无法理解您在代码上到底做了什么,但答案是:您应该对动态插入的内容使用事件委托(delegate)

关于javascript - 加载动态内容后 jQuery 函数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33649865/

相关文章:

jquery - 对表中的最后一行进行 AJAX 加载调用

javascript - 如何确保浏览器不缓存我的 JS/CSS

javascript - (: ) character appended to data while making Ajax request

javascript - JSHint 考虑一个 for-in 变量 'bad' 。这是什么意思?

javascript - 边框折叠时单元格宽度属性未正确复制

javascript - Ajax 循环用于 html 输出 - Bootstrap 选项卡

javascript - DOM 元素 addclass 在 IE7 中不起作用

javascript - JQuery hashchange 事件 - 放在哪里?

javascript - 将 jQuery 元素数组插入页面的最佳方法

javascript - 如何在jquery中获取attr值