过滤问题 - 不显示帖子

Posted

技术标签:

【中文标题】过滤问题 - 不显示帖子【英文标题】:Filtering issue - showing no posts 【发布时间】:2019-11-09 06:27:57 【问题描述】:

我创建了一个过滤系统,可以过滤不同的帖子类型。如果选择时没有显示任何帖子,我想显示“无帖子”。但是目前,它显示在每个过滤器上。我创建了以下代码笔:

https://codepen.io/scottYg55/pen/OexpgR

此脚本有效,但点击后无效:-

var allHidden = $('.tile').filter(':visible').length === 0;

if($('.tile:visible').length===0)
  $('.hideme').show();

else
  $('.hideme').hide();

全点击功能

jQuery(function ($) 
    var allHidden = $('.tile').filter(':visible').length === 0;
    var selectedClass = "";
    $(".blogfilter a").on('click', function()
    $(".blogfilter a").removeClass("filter-selected");
    $(".tiles .tile").addClass("two-tile");
    $(this).addClass("filter-selected");    
    selectedClass = $(this).attr("data-rel"); 
    $("#blog-posts").fadeTo(100, 0.1);  
    $("#blog-posts .tile").not("."+selectedClass).fadeOut().removeClass('scale-anm');   

    setTimeout(function() 
        $("."+selectedClass).fadeIn().addClass('scale-anm');
            $("#blog-posts").fadeTo(300, 1);    
        , 300);    
    );
);

【问题讨论】:

为什么不var allHidden = $('.tile:visible').length===0; $('.hideme').toggle(allHidden) 点击函数在哪里调用这个? 什么点击功能。您还没有在此处发布任何点击功能。请点击edit,然后点击[<>],并在此处生成minimal reproducible example 我添加了点击功能,完整功能请看codepen.io/scottYg55/pen/OexpgR 目前var allHidden = $('.tile').filter(':visible').length === 0; 仅在页面加载时执行。例如,您需要将var allHidden = $('.tile:visible').length===0; $('.hideme').toggle(allHidden) 复制到超时之前 【参考方案1】:
<div class="hideme" style="display:none;">No posts</div>

脚本是

jQuery(function ($) 


    var selectedClass = "";
    $(".blogfilter a").on('click', function()
        var datarel = $(this).data("rel");
        var hasclass = $( ".tiles .tile" ).hasClass( datarel );

        (hasclass === false) ? $(".hideme").css("display","block") :  $(".hideme").css("display","none");               


        $(".blogfilter a").removeClass("filter-selected");
        $(".tiles .tile").addClass("two-tile");
        $(this).addClass("filter-selected");    
        selectedClass = $(this).attr("data-rel"); 
        $("#blog-posts").fadeTo(100, 0.1);  
        $("#blog-posts .tile").not("."+selectedClass).fadeOut().removeClass('scale-anm');       
        setTimeout(function() 
            $("."+selectedClass).fadeIn().addClass('scale-anm');
            $("#blog-posts").fadeTo(300, 1);    
        , 300); 


    );
);

【讨论】:

哇,就是这样!!非常感谢Vinee! 这对我来说意义重大:)

以上是关于过滤问题 - 不显示帖子的主要内容,如果未能解决你的问题,请参考以下文章

如何根据距离过滤器显示帖子

自定义帖子类型的 WooCommerce 产品

单击过滤器选项时,帖子/图像重叠,并在窗口调整大小后显示在砖石视图中

Logcat 不显示电话进程

使用 Ajax 的带有自定义分类法的 Wordpress 多个自定义帖子类型过滤器 - 所有新创建的帖子都不会在响应中显示

为啥帖子不显示在主页上?