javascript - Jquery 事件委托(delegate)问题

标签 javascript jquery ajax

谁能告诉我哪里出了问题? news_active 是一个静态 div,其他所有内容都是通过 ajax 调用加载的,没有任何内容会触发警报,很困惑?!

$('#news_active').load('ajax.php', function() {
    // Delete news active
    $('#news_delete').on('click', function() {
        var vNid = $('#news_delete').attr('data-nid').val();
        alert(vNid);
        //$('#news_active').load('ajax.php?nid='+vNid);
    });
});

按钮看起来像这样,有多个按钮加载了不同的 data-nid 值:

<button id="news_delete" data-nid="1">Delete</button>

最佳答案

由于 news_delete 是动态加载的,您需要使用 event delegation注册事件处理程序,如:

// New way (jQuery 1.7+) - .on(events, selector, handler)
$('#news_active').on('click', '#news_delete', function(event) {
    var vNid = $('#news_delete').data('nid');
    alert(vNid); 
});

另外,您的代码中获取data-nid属性值的方式不正确。

要么使用这个:

var vNid = $('#news_delete').attr('data-nid');  // No need of .val() here
alert(vNid);

或者仅此使用 .data()

var vNid = $('#news_delete').data('nid');  
alert(vNid);

关于javascript - Jquery 事件委托(delegate)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19788490/

相关文章:

php - $(this).data ("value") 未使用 $.post 传递值

javascript - 主干 View 未加载

Javascript:非空字符串的 "truthy"值

javascript - 悬停时颜色变化

javascript - 如何使这个重复代码更高效: jquery

javascript - x 和 y 位置查找器 JQuery JS

php - json_decode + ajax + 私有(private)属性 = 灾难 [错误 : JSON_ERROR_CTRL_CHAR]

javascript - 使用ajax和json从php返回数组

javascript - 如何在jQuery中找到最近的图像src路径

javascript - 需要将 url 放在网站的配置文件中,而不是放在 js 文件中