1

嗨,沃尔克斯,

这是我想用 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 节点

我希望得到帮助。多谢。

4

2 回答 2

2

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

$(selector).live("click", function() {});
于 2010-06-18T20:05:47.290 回答
1

与其使用$('.clickme').click()which is a one-time bind(),不如尝试使用$('.clickme').live('click', function() { ... });which 本质上监视更改并维护跨 DOM 更改的绑定。

请参阅此处了解更多信息。

于 2010-06-18T20:06:33.177 回答