我有一个加载更多按钮,当点击它时,通过执行ajax调用显示接下来的4个项目。
然而,有时(没有明显的原因),内容被复制并返回两次,即使我提醒结果时,只有1.当你双击按钮时也会发生这种情况。
任何帮助将不胜感激!
这是我的代码:
/* load more */
$('.load-more').on('click',function(e){
e.preventDefault();
e.stopPropagation();
$('.pagination-holder').fadeOut(250,function(){
$(this).remove();
});
var start = $(this).data('start'),
limit = $(this).data('limit'),
page = $(this).data('page'),
type = $(this).attr('href');
$.ajax({
url:'/index.php?route=news/news/getnext&start=4&limit=4&page=2',
method:'GET',
data:{start:start,limit:limit,page:page},
dataType:'json'
}).done(function(data){
var html = '';
html +='<div class="row next" style="display:none">';
$.each(data.newss,function(i,news){
html +='<div class="col-md-3 pt30">';
html +=' <div class="image mb30"><a href="'+news.href+'"><img src="'+news.image+'" alt="'+news.title+'" class="responsive" /></a></div>';
html +=' <div class="text">';
html +=' <h3><a href="'+news.href+'">'+news.title+'</a></h3>';
html +=' <p class="date mb5">'+news.date+'</p>';
html +=' <p class="mb30">'+news.description+'</p>';
html +=' <a href="'+news.href+'" class="btn mb30">Read</a>';
html +=' </div>';
html +='</div>';
if ((i+1) % 4 === 0) {
html +='<div class="clear"></div>';
}
});
html +='</div>';
//alert(html); /* when I alert this, it displays one row, as it should do, but when i don't alert this, it can append duplicates */
$('#'+type+'-list').find('.row').after(html).ready(function(){
$('.row.next').fadeIn(500).removeClass('next');
});
});
});
我在stackoverflow中看到了类似的问题,我试图解决这个问题,但我无法弄明白。
答案 0 :(得分:0)
嘿,你可以用相同的答案:
https://stackoverflow.com/questions/45788916/jquery-isnt-getting-dynamically-updated-data-from-button