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

时间:2014-09-12 08:01:37

标签: javascript jquery ajax

我有类似的东西:

$('.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模板附加的链接似乎没有任何工作......

可能我使用了错误的策略来做到这一点,所以在这里我需要你的帮助。

我在$.get方法中使用success以获取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>

2 个答案:

答案 0 :(得分:0)

我不知道你究竟追加了什么,但是如果你追加包含<a href="your url"> Text</a>的内容,那么链接应该有效。如果你想要tu模拟你的链接,那么假设你有这样的想法<span class="myclass">Click here</span>你应该添加一个jQuery事件:

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

我知道你想做什么。

答案 1 :(得分:0)

如果要在 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/