0
 $('a.reply_links').bind('click', function(e) { 

  var url = $(this).attr('href');
  $('#comment_results').load(url); 
  // load the html response into a DOM element
  e.preventDefault(); // stop the browser from following the link

  return false;
});

我在一页上有几条评论。所有评论都有回复链接。单击时,每个链接都会转到一个 php 文件,其中所有评论都是从数据库中选择的,然后加载到 div (#comment_results) 中。此外,点击的回复链接现在包含回复表单。

当我点击一个回复链接时,上面的代码工作正常。但是,如果我单击不同评论上的另一个回复链接,我将被重定向到带有输出的 php 文件。html代码如下。单击链接后,php 文件会将回复表单添加到该特定评论。

<div class="row">
<div id="comment_results" class="large-12 columns">

      <div class="panel"><div class="row" id="116">
      <div class="large-10 columns">
      <p>4 hours ago&nbsp;by&nbsp;<strong>Julian</strong>
      <br />Comment One</p></div>
      <div class="large-2 columns right">
      <a class="reply_links" href="mylink to php file">reply</a>
      </div></div></div>

      <div class="panel"><div class="row" id="115">
      <div class="large-10 columns">
      <p>5 hours ago&nbsp;by&nbsp;<strong>Julian</strong><br />
       Comment Two</p></div>
       <div class="large-2 columns right">
       <a class="reply_links" href="mylink to php file">reply</a>
      </div></div></div>

</div>
</div>

谢谢吉利安

4

2 回答 2

0

if your query version is 1.7+ you could use on with delegated events as I imagine your problem is that you are clicking reply links created after original event bind.

$(document).on('click', 'a.reply_links' function(e){ .. })
于 2013-06-19T19:39:50.523 回答
0

如果.reply_links链接在 inside #comment_results,那么它将被.load()调用替换,因此.bind()只会在第一次加载页面时起作用。如果您使用的是正确版本的 jQuery,Claudio 的建议可能是最简单的解决方案。如果这不是一个选项,请研究事件委托。在这种情况下,提供示例标记也有助于确定问题的根本原因。

于 2013-06-19T19:44:45.910 回答