javascript - jQuery 让 .preventDefault() 对生成的元素起作用

标签 javascript jquery html events

我在让 .preventDefault 处理我通过 JQuery 生成的某些元素时遇到了一些问题。

我使用以下代码获取 JSON 文件并将数据放入各个 p 元素中:

$.getJSON(searchURL, function(data) {
        $.each(data, function(key, value) {
            if (typeof value === 'object') {
                for (var i = 0; i < data.count; i++) {
                    var fullPlayerURL = "<p class='entry'>" + "<a href=" + playerURL + data.data[i].id + ">"
                        + "Nickname - " + data.data[i].nickname + "</a>" + "</p>"
                    $('#results').append(fullPlayerURL);
                }
            }
        });
}); //end getJSON

然后,我使用以下代码来阻止链接在单击时重定向(链接到另一个 JSON 文件):

$('.entry').click(function(event) {
    event.preventDefault();
    var linkClicked = $(this).attr("href");
    console.log(linkClicked);
});

我不知道这是否重要,但#results只是一个空的div。

这是all the code如果这还不够信息(抱歉,这太乱了)。

最佳答案

您需要动态元素的委托(delegate)事件处理程序

$('#results').on('click', '.entry', function(event){
    event.preventDefault();
    var linkClicked = $('a', this).attr("href");
    console.log(linkClicked);
});

关于javascript - jQuery 让 .preventDefault() 对生成的元素起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21568362/

相关文章:

javascript - jquery 函数被调用两次

javascript - jQuery 创建的元素无法通过 post 发送

javascript - tablesorter 插件,我无法使其工作

javascript - 如何自动将段落放入 div 框

javascript - 在变量中使用 Foreach 循环

javascript - Tablesorter 未加载动态生成的内容

javascript - 如何在被透明 div 覆盖时突出显示 HTML 文本?

html - 将引用的 HTML5 标签与图像和作者结合起来

javascript - Fullpage.js 和 SlimScroll

javascript - 如何让 Gatsby Link 接收 props 作为参数并关闭点击光标