Ajax附加了新数据,但链接不起作用

Ajax append new data but links do not work

本文关键字:链接 不起作用 数据 新数据 Ajax      更新时间:2023-09-26

我有类似的东西:

$('.new-post').on('click', function(e) {
  e.preventDefault();
  $.ajax({
    url: '/somehting'
    data: {my data},
    ...etc,
    success: function(data) {
      $.get('template.html', function(h) {
        var el = $(h);
        el.find('items').text('texts...');
        el.appendTo('.myElement');
      });
    }
  });
});

我正在使用ajax发布一篇新的帖子,我希望在它被保存到服务器后,它会被附加到现有的帖子列表中。

它工作得很好,但如果我点击我使用html模板附加的链接,似乎什么都不起作用。。。

也许我用了一个错误的策略,所以在这里我需要你的帮助。

我在success方法中使用了$.get,以便获得一个html模板,在其中插入要附加的新帖子数据。我知道$.get是异步的,但由于某种原因,它不起作用,直到我不刷新页面。。。

编辑(HTML)

<li>
  <h2></h2>
  <p></p>
  <ul class='actions'>
    <li><a href='link to the post'></a>
    <li><a href='#' data-modal='comment-modal'>Comment</a>
  </ul>
</li>

如果您想在Ajax调用之后执行它,则必须在success处理程序中添加重新绑定

success: function(data) {
    elem.replaceWith(data);
    $('.actions').bind('click', /* some function needs to go here*/);
}

检查以下链接

[1] :http://api.jquery.com/live/[2] :http://api.jquery.com/delegate/[3] :http://api.jquery.com/on/[4] :http://api.jquery.com/live/

我不知道你到底附加了什么,但如果你的附加内容包含<a href="your url"> Text</a>,那么链接应该可以工作。如果你想模拟你的链接,假设你有这样的<span class="myclass">Click here</span>,你应该添加一个jQuery事件:

el.find("span.myclass").click(function(){
    //do something 
}) 

我知道你想做什么