来自不同页面 WordPress 的 jQuery 同位素过滤器

2023-12-07

我正在尝试从完全不同的页面过滤到我的同位素所在的位置。

目前,我正在成功调用同位素:

 $(function() {
    // cache container
    var $container = $('.isotope-container');
    var $defaultfilter = $('.feature-this');
    $('.isotope-container').isotope({
      filter: '.feature-this',
      masonry: { columnWidth: 326, resizesContainer: false }
    });

    // filter items when filter link is clicked
    $('#filters a').click(function(){
      var selector = $(this).attr('data-filter');
      $container.isotope({ filter: selector });
      return false;
    });
    // set selected menu items
   var $optionSets = $('.option-set'),
       $optionLinks = $optionSets.find('a');

       $optionLinks.click(function(){
          var $this = $(this);
    // don't proceed if already selected
    if ( $this.hasClass('selected') ) {
        return false;
    }
   var $optionSet = $this.parents('.option-set');
   $optionSet.find('.selected').removeClass('selected');
   $this.addClass('selected'); 
  });
});

我想从另一个页面过滤单击链接时的结果,并使用如下标记:

    <ul>
        <li><a href="/isotope/#filter=.filter1">Filter 1</a></li>
        <li><a href="/isotope/#filter=.filter2">Filter 2</a></li>
        <li><a href="/isotope/#filter=.filter3">Filter 3</a></li>
        <li><a href="/isotope/#filter=.filter4">Filter 4</a></li>
        <li><a href="/isotope/#filter=.filter5">Filter 5</a></li>
    </ul>

我无法让它工作。它在这里按需要工作,但不是从不同的页面开始:

http://isotope.metafizzy.co/demos/hash-history.html


我已经为你找到了答案 - 我写了一篇关于它的博客文章;

来自不同 WordPress 页面的同位素过滤

只是为了链接失效等,我将其复制到这里。我使用了 jQuery cookie 插件并创建并销毁了一个 cookie,该 cookie 通过过滤器传递到包含同位素的页面。就我而言,header.php 中的每个页面上都有一个永久的过滤器主菜单。但是,我使用此代码根据用户是在主页(上面有同位素)还是其他页面上为菜单指定不同的类;

<?php

if (is_front_page()) {
   echo '<ul id="filters">';
} else {
   echo '<ul id="cookiefilter">';
}

?>

然后 Javascript 被更改,这样如果被单击的链接是 cookiefilter 菜单的一部分(即在同位素页面之外),那么#cookiefilter aclick 事件被触发并创建了一个 cookie。下面的代码块根据 cookie 过滤 Isotope,然后销毁它。它所在的网站是;

http://www.face-educationmarketing.co.uk

要查看它的实际操作,请进行解释。主页上有同位素,“工作”标题下的所有条目都是同位素过滤器。 “关于”标题是一个 WP 菜单,单击“关于”下的其中一个链接,您将进入不同的 WP 页面。在该页面上,您将检查工作过滤器列表上标记的更改 - ul 类已更改,现在是;

<ul class="cookiefilter">

而不是;

<ul class="filters">

这是重要的一点,因为在下面的 JS 中,点击事件#filters a与点击事件的行为不同#cookiefilter a

在后一种情况下,会创建一个 cookie,其中包含过滤器名称。 onload JS 检查这样的 cookie 是否存在,如果存在,则调用 Isotope,使用 cookie 中的值对其进行过滤,然后销毁 cookie,以便正常的过滤器起作用。这是 JS;

    // filter items when filter link is clicked
    $('#filters a').click(function(){
        var selector = $(this).attr('data-filter');
        $container.isotope({ filter: selector });
        return false;
    });

    // Set cookie based on filter selector
    $('#cookiefilter a').click(function(){
        var selector = $(this).attr('data-filter');
        $.cookie("listfilter", selector, { path: '/' });
    });

    if ( $.cookie("listfilter") ) {
        $container.isotope({ filter: $.cookie("listfilter") });
        $.cookie("listfilter", null, { path: '/' });
        return false;
    }

将“Active”类添加到链接

根据评论提供更多信息。一个好问题,如何向活动过滤器添加一个类,以便可以应用 CSS 向用户显示过滤器处于活动状态?

我已经在自己的主页上做到了这一点(http://www.mcnab.co)使用以下 JS。查看标头右侧的 Magento、Wordpress、Joomla 部分。这些是同位素过滤器。

该脚本清除 id 无序列表中包含的链接中的所有类filters当按下链接时,在重新启动同位素之前将“活动”类添加到单击的链接中;

    var $filterlist = $('ul#filters');
    // filter items when filter link is clicked
    $('#filters a').click(function(){
        $this = $(this);

        var selector = $(this).attr('data-filter');

        // Remove classes from all filters
        $filterlist.find('a').each(function(){
            $(this).removeClass();
        }); 

        // add active class to clicked filter
        $this.addClass('active');

        // refire isotope using the newly clicked filter
        $container.isotope({ filter: selector });
        return false;
    });

要从另一个页面执行此操作,您可以将类似的脚本添加到#cookiefilter a它找到了具有与 cookie 相同的日期过滤器属性的链接,并向其添加“活动”类。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

来自不同页面 WordPress 的 jQuery 同位素过滤器 的相关文章

  • AngularJS - 在等待数据/数据计算时加载图标

    我有一个简单的 Angular http get app factory countriesService function http return getCountryData function done http get resourc
  • Bug 组合:jQuery 1.4、ajax/json、Firebug Lite 和 IE 8

    我刚刚得出结论 无论我如何尝试 jQuery 的 ajax 调用都无法在 IE 8 中处理 JSON 数据 我发现我可以使用 jQuery 1 3 2 库 这解决了问题 但 1 4 根本无法处理 JSON ajax 请求 即使返回的 JSO
  • JavaScript/jQuery - “$ 未定义 - $function()”错误

    我正在尝试运行 JavaScript jQuery 函数并且Firebug http en wikipedia org wiki Firebug 28software 29得到错误 is not defined function JavaS
  • Firefox 上的 jquery 焦点未设置

    我想将焦点设置到我的文本区域 以下是我的代码 this textInput val show focus 但它不起作用 实际上 当我按下鼠标按钮时 它会出现 但是当我松开鼠标时 它会从文本区域中删除 因此 经过大量搜索后 我发现 setTi
  • Ajax 函数在重定向后不保存滚动位置

    正如标题所述 我编写了一个 ajax 函数 该函数应该滚动到用户在重定向之前所在的位置 我写了一个alert对于测试场景 它确实触发了 但滚动不断回到顶部 我在这里做错了什么 JavaScript ajax type GET url Adm
  • Kendo 刷新 (DropDownList.refresh()) 不起作用错误未定义

    我试图在另一个 DropDownList 更改后刷新下拉列表 但 Refresh 方法未定义错误正在升级 我尝试再次读取数据源 它显示它正在加载 但数据仍然相同 帮助解决这个问题请 Code DropDownList1 change fun
  • 使用 Javascript 触发选择表单元素以显示其选项(打开下拉选项列表)

    这是标记
  • jquery html() 默认解码 html 实体?

    我不知道为什么 jquery html 会这样做 但是在我这样做之后 html html 我得到 copy 自动转换为 无论如何要避免这种情况 我需要使用 javascript 转储页面的 html 并且不需要这种破坏 html 的无用转换
  • jQuery float bar 数字:数字定位

    我在用着jquery flot barnumbers js https github com joetsoi flot barnumbers 的插件jQuery 的 Javascript 绘图 图表 库 https github com f
  • Chrome 浏览器上的自动文件下载限制为 10 个文件

    我有一个网页 我们根据用户对页面项目的选择生成 PDF 这会导致回发 它是一个 ASP NET WebForms 页面 从而在服务器端创建 PDF 一个 a class documentDownload 然后将标签添加到每个项目的页面 当页
  • 滚动部分滚动并溢出

    我正在尝试使用脚本 Scrollify https github com lukehaas Scrollify https github com lukehaas Scrollify 但我的部分比用户的屏幕长 这意味着您首先必须向下滚动才能
  • WooCommerce:在数据库中查找产品

    我正在使用 WooCommerce 创建一个网站 我想根据用户在主页搜索表单中输入的邮政编码来限制用户可用的产品 为了能够实现这一目标 我必须在 phpMyAdmin 的数据库中指定每个产品的条件 但我似乎找不到它 有谁知道 phpmyAd
  • 如何在 jQuery 中创建 qrcode 的下载链接?

    我在用着goqr me http goqr me 用于创建二维码图像的 api 现在我想创建一个二维码图像的下载链接 我这样创建 qrcode 图像 function generateQrcode data var params data
  • 在 header.php 中设置变量但在 footer.php 中看不到

    在WordPress中 我设置了一个变量header php but in 页脚 php当我回应它时 我没有打印任何东西 为什么 gt 您不在同一范围内 因为页眉和页脚文件包含在函数体中 因此 您正在声明一个局部变量 并引用另一个局部变量
  • 使用日期类型将输入字段中的日期居中

    我想将日期居中input not input inside div 如果我进行居中 它将把日期居中于input因为有一个右侧面板用于根据日历选择日期 该面板根据输入宽度调整大小 用于演示的小代码片段 center text align ce
  • 如何用 jQuery 替换击键?

    我需要能够用 jQuery 替换击键 当按下右箭头时 我希望改为按下 Tab 键 到目前为止我有
  • Rails 4 - 带有 dependent-fields-rails 的条件 JS

    我正在尝试弄清楚如何在我的 Rails 4 应用程序中使用 dependent fields rails gem 我迷路了 我已将 underscore js 包含在我的供应商 javascripts 文件夹中 并更新了我的 applica
  • 有不同图像尺寸的缩略图 Bootstrap

    我想要包含不同大小和不同文本量的图像的缩略图 但我希望它们都具有相同的大小 像这样来自 Bootstrap 站点的示例 http getbootstrap com components thumbnails custom content 下
  • 如何在 jQuery 中检查复选框是否被选中?

    我需要检查checked复选框的属性 并使用 jQuery 根据选中的属性执行操作 例如 如果age复选框被选中 然后我需要显示一个文本框来输入age 否则隐藏文本框 但下面的代码返回false默认情况下 if isAgeSelected
  • 如何仅在第一次访问时弹出模态窗口

    我有一个模式窗口 当您访问某个页面时会弹出 访客必须选择我同意或我不同意 我需要一个漂亮的小 jquery 脚本 它会记住谁之前访问过该页面并同意 这样他们每次访问该页面时就不会弹出模式 有人可以推荐一个好的脚本来使用吗 这是代码 div

随机推荐