Javascript jQuery getting.preventDefault()处理生成的元素

Javascript jQuery getting.preventDefault()处理生成的元素,javascript,jquery,html,events,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

让.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
我不知道这是否重要,但
#results
只是一个空div


如果这还不够信息(很抱歉,太乱了)。

动态元素需要委托事件处理程序

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

对于动态元素,您需要委托事件处理程序

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

对不起,我不能对阿德内奥的回答发表评论。 对于我来说,
var linkClicked=$('a',this).attr(“href”)提供未定义的。
我必须使
var linkClicked=$(this.attr(“href”)退出

编辑:我知道,我想向主持人讲话

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

对不起,我不能对阿德内奥的回答发表评论。 对于我来说,
var linkClicked=$('a',this).attr(“href”)提供未定义的。
我必须使
var linkClicked=$(this.attr(“href”)退出

编辑:我知道,我想向主持人讲话

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

您还可以使用
.ajaxStop()
或将代码放入
success
函数,只需说一句即可@阿多尼奥的解决方案是正确的!只是一个简单的问题,为什么
linkClicked
会在控制台中返回未定义的?@DigitalMockingbird-段落没有href属性,其中的锚点编辑了答案。@DigitalMockingbird
$(此)
现在是
#结果
。以
$(event.target).attr(“href”)
为例。Adeneo?@dollarvar-nope,
这是
。entry
,jQuery也为委托处理程序保留了正确的作用域,但是
.entry
元素不是锚。您也可以使用
.ajaxStop()
或将代码放入
success
函数中,只需这样说@阿多尼奥的解决方案是正确的!只是一个简单的问题,为什么
linkClicked
会在控制台中返回未定义的?@DigitalMockingbird-段落没有href属性,其中的锚点编辑了答案。@DigitalMockingbird
$(此)
现在是
#结果
。以
$(event.target).attr(“href”)
为例。Adeneo?@dollarvar-nope,
这个
.entry
,jQuery也为委托处理程序保留了正确的作用域,但是
.entry
元素不是锚。