我有类似的东西:
$('.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>
答案 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/