【发布时间】:2016-10-18 19:17:54
【问题描述】:
我创建了一个 ajax 加载更多按钮来从我的数据库中获取更多数据,一切正常。我现在正在尝试进行计数,因此该按钮会显示还有多少结果要显示。这是单击按钮时触发的 jQuery 代码:
jQuery(document).ready(function(){
jQuery(document).on('click','.show_more',function(){
var ID = jQuery(this).attr('id');
var count = jQuery(".singleproduct").length;
var totals = jQuery('.totalleft').text();
var finaltotal = totals - count;
//jQuery('.show_more').hide();
jQuery('.loding').show();
jQuery.ajax({
type:'POST',
async: true,
crossDomain : true,
url:'example.com/data.php',
data:'count='+count,
success:function(html){
//jQuery('#show_more_main'+ID).remove();
jQuery('.retailitems').append(html);
jQuery('html, body').animate({scrollTop: jQuery(".site-info").offset().top}, 1000);
}
});
jQuery( ".totalleft" ).replaceWith( finaltotal );
});
});
这里是按钮的代码:
<span id="<?php echo $result['id']; ?>" class="show_more" title="Load more posts">Load <span class="totalleft"><?php echo $loadmore;?></span> more</span>
第一次单击时,按钮会更新为正确的剩余结果。第二次单击时,会填充新闻结果,但计数保持不变。
上面的顺序是否正确?
谢谢
编辑
所以我发现了问题。计算是正确的,但是当更新按钮上的计数时,我实际上是在删除“totalleft”类:
jQuery( ".totalleft" ).replaceWith( finaltotal );
所以我将其替换为:
jQuery( ".totalleft" ).text( finaltotal );
一切都很好,感谢您的帮助。
【问题讨论】:
-
嘿,你有没有通过 console.log(finaltotal) 验证它每次都不同吗?
标签: php jquery ajax pagination