【问题标题】:Why Do the Images Vanish in jQuery Quicksand?为什么 jQuery Quicksand 中的图像会消失?
【发布时间】:2011-11-07 22:56:53
【问题描述】:

我不明白为什么当我点击过滤器时图像会消失。


流沙脚本代码(位于名为 jquery.custom.js 的文件中):

jQuery.noConflict();
jQuery(document).ready(function($){
    // Clone applications to get a second collection
    var $data = $("#portfolio-items").clone();

    //NOTE: Only filter on the main portfolio page, not on the subcategory pages
    $('#portfolio-terms ul li').click(function(e) {
        $("ul li").removeClass("active");   
        // Use the last category class as the category to filter by. This means that multiple categories are not supported (yet)
        var filterClass=$(this).attr('class') //.split(' ').slice(-1)[0];
        filterClass = filterClass ? filterClass.split(' ').slice(-1)[0] : '';

        if (filterClass == '.all current') {
            var $filteredData = $data.find('#portfolio-');
        } else {
            var $filteredData = $data.find('#portfolio-[data-type=' + filterClass + ']');
        }
        $("#portfolio-items").quicksand($filteredData, {
            duration: 800,
            easing: 'swing',
        });     
        $(this).addClass("active");             
        return false;
    });
});


在这里可以看到portfolio-itemsterms的PHP代码:http://snipt.org/Mnp8

你能帮帮我吗?
谢谢!

【问题讨论】:

    标签: jquery quicksand


    【解决方案1】:

    $data.find 不直接搜索属性。什么会起作用就像替换

    var $filteredData = $data.find('#portfolio-');
    

    var $filteredData = $data.find('li[id|="portfolio"]');
    

    这将搜索id以portfolio开头的所有li

    以下行是指 LI,而不是 a 标签。 LI 元素上没有类。

    $(this).attr('class') //.split(' ').slice(-1)[0];
    

    假设您将类放在 LI 元素上,您可能可以修改更改这一行(我不确定这一行):

    var $filteredData = $data.find('#portfolio-[data-type=' + filterClass + ']')
    

    到:

    var $filteredData = $data.find('li.' + filterClass);
    

    请看一下
    http://jsfiddle.net/bhoover10001/SzjhS/ 看看这或多或少是您想要的功能。

    A) 你没有把类放在被点击的 LI 项目上。

    <li class="all"><a href="">All</a><span>/</span></li>
    <li class="term-4"><a href="" 
    data-value="term-4" title="View all items filed under Colours">Colours</a> <span>/</span>
    </li>
    <li class="term-3" >
    <a href="" data-value="term-3" title="View all items filed under Fotografie">Fotografie</a> <span>/</span>
    </li>
    

    B) data-id 是您正在显示的项目的 LI 元素上的必需元素。例如:

    <li id="portfolio-12" class="term-4 visible" data-id="post-12">
    

    C) 过滤器类应该是每个投资组合中的第一个类。您错误地拆分了过滤器类:

    filterClass = filterClass ? filterClass.split(' ')[0] : '';
    

    D) 您的“ALL”条件编码错误:

    if (filterClass == 'all')
    

    【讨论】:

    • 谢谢布赖恩,但它不起作用! :( 我认为问题出在默认脚本中,当您单击过滤器术语时,您现在可以看到该脚本。但我不知道如何删除这个旧脚本。可能删除它可以使用流沙脚本。
    • ps。对不起我的英语不好!
    • 你能告诉我什么不起作用吗?我刚刚在我的 Firefox 浏览器中备份了您的网站,它似乎已关闭。
    猜你喜欢
    • 1970-01-01
    • 2020-05-08
    • 1970-01-01
    • 2014-05-24
    • 1970-01-01
    • 2014-09-30
    • 2022-11-11
    • 2015-12-03
    • 2012-04-21
    相关资源
    最近更新 更多