jQuery"加载更多的帖子”;隐藏按钮如果最后一个帖子

jQuery "load more posts" hide button if last post

本文关键字:最后一个 隐藏 按钮 如果 quot 加载 jQuery      更新时间:2023-09-26

我正在使用jQuery为Wordpress循环创建"加载更多帖子"效果。由于循环已经加载了所有的帖子,并且它们只是与jQuery一起出现,所以当我到达最后一个时,我无法隐藏"加载更多"按钮。

$(document).ready(function () {
$(".post").addClass("hide"); 
total = $("#allpost .post").size();
x = 3;
    $('.loadmore').click(function () {
       //y = x;
        $(total);
    $(".post").removeClass("hide");     
        $(".post:gt("+x+")").addClass("hide"); 
     x = x + 1;
    });
});

我的环路

<div id="all-posts">
        <?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
        $args= array(
    'posts_per_page' => 100,
    'paged' => $paged
);
query_posts($args); ?> <!-- posts per page -->
        <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
        <?php $postcount++;
$new_class = ( ($postcount % 2) == 0 ) ? "even" : "odd"; ?>
<div <?php post_class($new_class) ?> id="post-<?php the_ID(); ?>">
    <div class="post_image">
        <a href="<?php echo the_permalink(); ?>">
        <?php if ( has_post_thumbnail() ) { // check if the post has a Post Thumbnail assigned to it.
            the_post_thumbnail('custom-size'); // post thumbnail    
        }?>
        <button class="blog_button">Vaata</button></a>
    </div>
    <div class="post_tekst">
        <div class="lisakast">
            <h2><?php the_title(); ?></h2>
            <p><?php the_excerpt(); ?></p>
        </div>
    </div>  
    </div><!-- odd / even div -->
        <?php endwhile; endif; ?>
              <div class="loadmore">Lae juurde</div>
        </div><!-- all posts -->

JSFiddle:https://jsfiddle.net/hd4603gj/7/

这是如何实现的?

您只需要在JS代码中添加一个额外的验证。

$(document).ready(function () {
    $(".post").addClass("hide"); 
    total = $( ".post" ).length;
        x = 3;
    $('.loadmore').click(function () {
       //y = x;
        $(total);
    $(".post").removeClass("hide");     
        $(".post:gt("+x+")").addClass("hide"); 
     x++;

    if($(".post.hide").length == 0){
        $('.loadmore').addClass('hide');
    }
    });

当所有帖子都可见时,隐藏"加载更多"按钮

您可以使用以下代码:

$(document).ready(function () {
    $(".post").addClass("hide"); 
        total = $( ".post" ).length;
            x = 3;
        $('.loadmore').click(function () {
           //y = x;
            $(total);
        $(".post").removeClass("hide");     
            $(".post:gt("+x+")").addClass("hide"); 
         x++;

        if(x >= total){
        $( ".loadmore" ).hide();
        }
        });
    });

.length()功能:

当前匹配的元素数。.size()方法将返回相同的值。要获取有关.length()的更多信息:请单击

演示:Fiddle