满足条件时停止Jquery

时间:2013-06-14 07:27:03

标签: javascript jquery

我在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绑定,所以我知道它有效)。但在实施时,却没有!

为什么会这样?

1 个答案:

答案 0 :(得分:1)

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

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

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

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

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

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