【问题标题】:Get href value after loading the link with AJAX in jQuery在jQuery中使用AJAX加载链接后获取href值
【发布时间】: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 完成什么吗?

标签: php jquery ajax json href


【解决方案1】:

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

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

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

【讨论】:

  • 谢谢。这正是我需要的:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-17
  • 1970-01-01
  • 2012-01-23
  • 2014-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多