在jQuery中使用AJAX加载链接后获取href值

Posted

技术标签:

【中文标题】在jQuery中使用AJAX加载链接后获取href值【英文标题】:Get href value after loading the link with AJAX in jQuery 【发布时间】:2011-10-26 18:02:45 【问题描述】:

我正在尝试使用 AJAX 更新我的数据库中的单个记录。一切正常,但是当返回结果时,它看起来很好,但是如果再次单击 a.update(对于返回的元素)我打开了 href(所以第二次 attr() 对某些人不起作用原因)。我对 jQuery 和 ajax 很陌生 :)

    // Update Single Item   
$('li a.update').click(function () 
updateURL = $(this).attr("href");
$(this).attr("href", "#");
theContainer = $(this).parents('li');
    $.ajax(
    type: "GET",
    dataType: 'json',
    url: updateURL,
        async: false,
    success: function(data)
        theContainer.replaceWith(data.html).fadeIn(300);
    

    );
    return false;
    );

附言List 元素是用 php 生成的。当我请求单个 <li> 元素时,我使用完全相同的模板生成它(默认情况下,所有内容都使用 foreach 循环打印,之后 AJAX 请求返回带有 <li>...</li> 的 JSON)

【问题讨论】:

似乎您正在替换 html,因此处理程序在此之后消失了。您可能想尝试现场直播或其他方法。你能举一个小例子来说明你想用 html 完成什么吗? 【参考方案1】:

您可以使用live 方法将事件侦听器附加到所有匹配的元素,无论它们是否已经在 DOM 中:

$('li a.update').live("click", function() 
    //Your code
);

您附加事件侦听器的方式只会将其附加到当前在 DOM 中的元素,并且当您通过 AJAX 添加新元素时,它们不会接收事件侦听器。

【讨论】:

谢谢。这正是我需要的:)

以上是关于在jQuery中使用AJAX加载链接后获取href值的主要内容,如果未能解决你的问题,请参考以下文章

jquery在点击事件后等待ajax加载完成

jquery mobile listview使用ajax动态加载后,跳转到其他页面返回时数据没有保存如何解决?

jQuery在更改之前获取href初始值一次

jquery+ajax实现动态加载表单

ajax调用后Jquery事件不会触发

使用 AJAX 加载内容后无法播放音频