-2

我在我的 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 绑定,所以我知道它可以工作)。但是在实施时,它没有!

任何想法为什么会这样?

4

1 回答 1

1

我检查了网站并显示此代码:

/ 解除绑定正常行为。需要在正常无限滚动设置后发生。$(window).unbind('.infscr');

所以我想你可以这样做来禁用行为:

if ($Totalpages == 0) { 
   $(window).unbind('.infscr');
}

($Totalpages !=0){
   $(window).bind('.infscr');
}

顺便说一句,这是网站: http: //www.infinite-scroll.com/infinite-scroll-jquery-plugin/不确定它是否是同一个插件,顺便说一句......

于 2013-06-14T07:35:54.567 回答