由于某种原因,我的变量保持重置为2,尽管我希望在函数调用时增加变量。这真的很烦人,我重构了代码几次无济于事!它应该是简单...变量不在jQuery/JS中递增?
这里是我的代码:
(function($) {
$(document).ready(function() {
var count = 2;
var total = <?php echo $loop->max_num_pages; ?>;
if (count <= total) {
$(window).scroll(function() {
if ($(window).scrollTop() == $(document).height() - $(window).height()) {
$.ajax({
url: "<?php bloginfo('wpurl') ?>/wp-admin/admin-ajax.php",
type:'POST',
data: "action=infinite_scroll&page_no=" + count + '&loop_file=forums',
success: function(html){
$("#content").append(html);
}
});
count++;
}
});
} else {
return;
}
});
})(jQuery);
编辑:感谢您的答复迄今!下面更新代码:
<script type="text/javascript">
pageCount = 2;
total = <?php echo $loop->max_num_pages; ?>;
jQuery(window).scroll(function() {
if (jQuery(window).scrollTop() == jQuery(document).height() - jQuery(window).height()){
console.log('Old value: ' + pageCount);
if (pageCount > total){
return false;
} else {
loadArticle(pageCount);
}
pageCount++;
console.log('New value: ' + pageCount);
}
});
function loadArticle(pageNumber) {
jQuery.ajax({
url: "<?php bloginfo('wpurl') ?>/wp-admin/admin-ajax.php",
type:'POST',
data: "action=infinite_scroll&page_no=" + pageNumber + '&loop_file=forums',
success: function(html){
jQuery("#content").append(html);
}
});
return false;
}
</script>
新的值总是3老值始终是2(在控制台输出),所以它仍然被重置...
解决:在AJAX方法的HTML回调造成了这个问题。将增量移到那里工作!新代码:
(function($) {
pageCount = 2;
total = <?php echo $loop->max_num_pages; ?>;
$(window).scroll(function() {
if ($(window).scrollTop() == $(document).height() - $(window).height()){
if (pageCount > total){
return false;
} else {
$.ajax({
url: "<?php bloginfo('wpurl') ?>/wp-admin/admin-ajax.php",
type:'POST',
data: "action=infinite_scroll&page_no=" + pageCount + '&loop_file=forums',
success: function(html){
$("#content").append(html);
pageCount++;
}
});
}
}
});
})(jQuery);
我认为你的'html'返回的响应包含相同的脚本,使你的变量再次2 –