-2

Wordpress Web サイトで JQuery 無限スクロール スクリプトを使用しています。スクリプトは正常に動作しますが、すべての投稿が表示されるとスクリプトを停止できません。カスタム投稿タイプで使用し、ワードプレス (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 に答える