我在Wordpress网站上使用JQuery无限滚动脚本。该脚本工作正常,但是一旦所有帖子都显示,我就无法停止脚本。我在自定义帖子类型上使用它,并直接查询wordpress(MySQL)数据库。
我还创建了一个自定义分页以与无限滚动一起使用,并使用$Totalpages
来检查可用的页数。显示所有帖子后,$Totalpages
变量等于“0”,我知道没有更多帖子可供展示,无限滚动应该停止工作。这是我页面中的JavaScript ...
<script>
var infinite_scroll = {
loading: {
img: "<?php echo get_template_directory_uri(); ?>/images/ajax-loader.gif",
msgText: "<?php _e( 'Loading the next set of posts...', 'custom' ); ?>",
finishedMsg: "<?php _e( 'All posts loaded.', 'custom' ); ?>"
},
"nextSelector":".previous a",
"navSelector":".post-nav",
"itemSelector":"article",
"contentSelector":".main"
};
jQuery( infinite_scroll.contentSelector ).infinitescroll( infinite_scroll );
</script>
我正在考虑阻止JQuery继续执行
if ($Totalpages == 0) { stop Jquery from executing}
当我需要执行它来编写if ($Totalpages !=0){Execute the Javascript}
时,我将如何实现此目的。
更新问题
好的我已经将我的问题更新为Ceryl在下面建议的内容,修改代码以适应上面的代码
<?php if ($total_pages == 0) {
echo 'jQuery(window).unbind( infinite_scroll.contentSelector ).infinitescroll( infinite_scroll );';
}?>
<?php if ($total_pages != 0){
echo 'jQuery(window).bind( infinite_scroll.contentSelector ).infinitescroll( infinite_scroll );';
//$(window).unbind('.infscr');
}?>
if语句似乎是正确的但是当我在我的页面上实现它时它不起作用。如果我将unbind选项设置为4(这是我拥有的总页数,它会阻止JQuery绑定,所以我知道它有效)。但在实施时,却没有!
为什么会这样?
答案 0 :(得分:1)
我检查了网站并显示了这段代码:
/解除正常行为。需要在正常的无限滚动设置后发生。 $(窗口).unbind( 'infscr。');
所以我想你可以这样做来禁用这个行为:
if ($Totalpages == 0) {
$(window).unbind('.infscr');
}
($Totalpages !=0){
$(window).bind('.infscr');
}
顺便说一下,这是网站:http://www.infinite-scroll.com/infinite-scroll-jquery-plugin/不确定它是否是相同的插件,顺便说一句......