【问题标题】:jQuery: dom insertion selector problem after .getjQuery:.get 之后的 dom 插入选择器问题
【发布时间】:2011-03-05 14:24:15
【问题描述】:

大家好,

这是我想用 ajax 响应替换的代码块:

<div class="results">
  <span id="like9">
    <a class="like" rel="ajax.php?id=9" href="#">klick</a>
  </span>
</div>

这是我观察 ajax 链接的方式:

$(document).ready(function()
{
  $('.results .like').click(function()
  {
     params = getUrlVars($(this).attr('rel'));
     $.get($(this).attr('rel'), function(data)
     {
       $('#like'+params['id']).html(data); 
     });

     return false;
  });
});

单击链接后,一切正常,代码块将按预期替换。除了链接名称之外,其他一切都是平等的。

但是当我再次单击链接时,选择器不再起作用。 我想是因为旧的 a.like 被替换了。

我的问题是,我如何告诉 jquery 或 DOM 有一个新的 DOM 节点

我希望得到帮助。非常感谢。

【问题讨论】:

    标签: jquery dom get css-selectors insertion


    【解决方案1】:

    你可以尝试使用 jQuery.live()

    $(selector).live("click", function() {});
    

    【讨论】:

      【解决方案2】:

      不要使用$('.clickme').click(),它是一次性的bind(),而是尝试$('.clickme').live('click', function() { ... });,它本质上是监视更改并维护跨DOM更改的绑定。

      请参阅here 了解更多信息。

      【讨论】:

      • 谢谢更详细的答案:-)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-11
      • 2023-04-02
      • 2010-10-09
      • 1970-01-01
      • 2011-04-04
      • 2011-10-31
      相关资源
      最近更新 更多