Javascript jQuery getting.preventDefault()处理生成的元素
让.preventDefault处理我通过JQuery生成的某些元素有点问题 我使用以下代码获得一个JSON文件,并将数据放入各个p元素中: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
$.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
元素不是锚。