获取jQuery中通过Ajax动态加载的点击链接的HREF值
这件事让我抓狂。我有一个div,当页面加载时,它的内容通过Ajax加载。div的内容是几个超链接。我正在尝试使用获取jQuery中通过Ajax动态加载的点击链接的HREF值,jquery,Jquery,这件事让我抓狂。我有一个div,当页面加载时,它的内容通过Ajax加载。div的内容是几个超链接。我正在尝试使用$(this.attr('HREF')获取单击链接的HREF值。但是,这总是返回“未定义”。我猜,由于超链接是通过Ajax动态加载的,jQuery无法返回HREF值。我已经检查了页面来源并确认所有超链接都带有有效的HREF链接 如何检索通过Ajax动态加载的超链接的HREF值?此代码是否在文档就绪块中? 您必须记住的是,您必须在DOM完全加载后添加到DOM的链接上使用.on(“单击”)
$(this.attr('HREF')
获取单击链接的HREF值。但是,这总是返回“未定义”。我猜,由于超链接是通过Ajax动态加载的,jQuery无法返回HREF值。我已经检查了页面来源并确认所有超链接都带有有效的HREF链接
如何检索通过Ajax动态加载的超链接的HREF值?此代码是否在文档就绪块中?
您必须记住的是,您必须在DOM完全加载后添加到DOM的链接上使用
.on(“单击”)
。因为当您在document ready块中使用.click()
时,它无法工作,因为此时甚至没有加载a元素,因为加载元素的ajax执行速度较慢,可能在DOM就绪后执行。
所以如果你喜欢
$('a').on("click",function(){
alert($(this).attr('href'));
});
一切都应该适合你
请查看文档,以便更容易理解:
$('#container a').on('click', function(event) {
alert($(this).attr('href'));
return false;
});
从jQuery1.7开始,.live()方法已被弃用。John上面的答案是可行的,但您犯的错误是没有遵循其背后的逻辑 我希望我所做的示例对您最终理解如何调用函数有意义 第一个例子是:
$('#container a').on('click', function(event) {
alert($(this).attr('href'));
return false;
});
查看:功能(事件)
如果要使用preventDefault()代码>
您应该使用event.preventDefault()代码>
因为您调用了事件函数
您可以执行以下操作之一:
(一)
(二)
(三)
(四)
(五)
您应该使用preventDefault()代码>在函数中的任何其他内容之前
或者您当然可以只使用返回false根据上述示例,在函数末尾编写>代码。谢谢回复。无法对此进行测试。现在,单击链接可将浏览器转到链接页面。我添加了e.preventDefault()代码>以防止发生这种情况。但那不起作用。不,那也不起作用。浏览器仍然跟随链接。请确保没有任何javascript错误。使用firefox控制台进行检查。使用“Perist”模式,查看脚本中是否有错误。完全没有错误。也尝试了持久化模式。我想把头撞在桌子上。还有其他的建议吗?最终,我们可以使用.live`jQuery('.portfolio pagination a').live('click',function(e){e.preventDefault();alert(this.href);})`谢谢你的答复。无法对此进行测试。现在,单击链接可将浏览器转到链接页面。我添加了e.preventDefault()代码>以防止发生这种情况。但这不起作用。
$('#container a').on('click', function() {
alert($(this).attr('href'));
return false;
});
$('#container a').on('click', function(event) {
event.preventDefault();
alert($(this).attr('href'));
});
$('#container a').on('click', function(IamWhatYouWantMeToBe) {
IamWhatYouWantMeToBe.preventDefault();
alert($(this).attr('href'));
});
$('#container a').on('click', function() {
preventDefault();
alert($(this).attr('href'));
});
$('#container a').on('click', function(e) {
e.preventDefault();
alert($(this).attr('href'));
});