jQuery 可过滤组合:不加载所有
  • 项目
  • 发布于 2024-09-06 23:00:58 字数 2488 浏览 3 评论 0原文

    我对如何工作感到困惑,因此并非所有

  • 项目都会在页面刷新时加载。过滤对于
      “过滤器”中的每个链接选择都可以正常工作,但在页面重新加载时,所有
    • 项目都会显示,而不仅仅是过滤后的项目。
  • 代码来自 http://net。 tutsplus.com/tutorials/javascript-ajax/creating-a-filterable-portfolio-with-jquery/

    HTML:

        <div id="container">
        <li>home.com</li>
    
        <ul id="filter">
    
                <li><a href="#">books</a></li>
                <li><a href="#">essays</a></li>
                <li><a href="#">film</a></li>
    
        </ul>
    
        <ul id="portfolio">
    
    <li class="books"><a href="#"><img src="images/one.gif" alt="" height="120" width="200" />Book One</a></li>
    <li class="books"><a href="#"><img src="images/two.gif" alt="" height="120" width="200" />Book Two</a></li>     
    <li class="essays"><a href="#"><img src="images/three.gif" alt="" height="120" width="200" />Essay One</a></li>
    <li class="essays"><a href="#"><img src="images/four.gif" alt="" height="120" width="200" />Essay Two</a></li>
    <li class="film"><a href="#"><img src="images/five.gif" alt="" height="120" width="200" />Film One</a></li>
    <li class="film"><a href="#"><img src="images/six.gif" alt="" height="120" width="200" />Film Two</a></li>  
    
    </ul></div>
    

    JS:

    $(document).ready(function() {
        $('ul#filter a').click(function() {
            $(this).css('outline','none');
            $('ul#filter .current').removeClass('current');
            $(this).parent().addClass('current');
    
            var filterVal = $(this).text().toLowerCase().replace(' ','-');
    
            if(filterVal == 'all') {
                $('ul#portfolio li.hidden').fadeIn('slow').removeClass('hidden');
            } else {
    
                $('ul#portfolio li').each(function() {
                    if(!$(this).hasClass(filterVal)) {
                        $(this).fadeOut('normal').addClass('hidden');
                    } else {
                        $(this).fadeIn('slow').removeClass('hidden');
                    }
                });
            }
            return false;
        });
    });
    

    I'm puzzled on how to work this so not all of the <li> items load on a page refresh. The filtering works fine on each link selection in the <ul> "filter", but on a page reload, all <li> items show, not just the filtered.

    Code is from http://net.tutsplus.com/tutorials/javascript-ajax/creating-a-filterable-portfolio-with-jquery/

    HTML:

        <div id="container">
        <li>home.com</li>
    
        <ul id="filter">
    
                <li><a href="#">books</a></li>
                <li><a href="#">essays</a></li>
                <li><a href="#">film</a></li>
    
        </ul>
    
        <ul id="portfolio">
    
    <li class="books"><a href="#"><img src="images/one.gif" alt="" height="120" width="200" />Book One</a></li>
    <li class="books"><a href="#"><img src="images/two.gif" alt="" height="120" width="200" />Book Two</a></li>     
    <li class="essays"><a href="#"><img src="images/three.gif" alt="" height="120" width="200" />Essay One</a></li>
    <li class="essays"><a href="#"><img src="images/four.gif" alt="" height="120" width="200" />Essay Two</a></li>
    <li class="film"><a href="#"><img src="images/five.gif" alt="" height="120" width="200" />Film One</a></li>
    <li class="film"><a href="#"><img src="images/six.gif" alt="" height="120" width="200" />Film Two</a></li>  
    
    </ul></div>
    

    JS:

    $(document).ready(function() {
        $('ul#filter a').click(function() {
            $(this).css('outline','none');
            $('ul#filter .current').removeClass('current');
            $(this).parent().addClass('current');
    
            var filterVal = $(this).text().toLowerCase().replace(' ','-');
    
            if(filterVal == 'all') {
                $('ul#portfolio li.hidden').fadeIn('slow').removeClass('hidden');
            } else {
    
                $('ul#portfolio li').each(function() {
                    if(!$(this).hasClass(filterVal)) {
                        $(this).fadeOut('normal').addClass('hidden');
                    } else {
                        $(this).fadeIn('slow').removeClass('hidden');
                    }
                });
            }
            return false;
        });
    });
    

    如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

    扫码二维码加入Web技术交流群

    发布评论

    需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

    评论(1

    梦幻的味道 2024-09-13 23:00:58

    您正在尝试在页面重新加载时传递过滤器吗?如果是,您可以传递 url 中的变量,或使用 cookie。

    You are trying to pass on the filter on a page reload? If yes, you could either pass on the variable in the url, or use cookies.

    ~没有更多了~
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文