我在让 .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/