通过 URL 哈希链接触发打开 Zurb Foundation Accordion

2024-02-05

我真的很希望能够通过问题散列中带有手风琴窗格的 URL“激活”/“打开”Zurb 基金会手风琴。

就像 example.com/page#accordion1

Foundation 已经可以做到这一点吗?或者是否很容易实现?老实说我没有任何线索:-/

预先感谢您提供的任何帮助!


您可以通过向每个手风琴标题添加唯一属性来做到这一点<div class="title" data-ref="panel-1">在这种情况下我添加了一个data-ref属性。然后您需要添加一些 jQuery 来查看哈希值,如果它是手风琴面板,则单击该面板。

HTML

<ul class="accordion">
  <li class="active">
    <div class="title" data-ref="panel-1">
      <h5>Accordion Panel 1</h5>
    </div>
    <div class="content">
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    </div>
  </li>
  <li>
    <div class="title" data-ref="panel-2">
      <h5>Accordion Panel 2</h5>
    </div>
    <div class="content">
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    </div>
  </li>
  <li>
    <div class="title" data-ref="panel-3">
      <h5>Accordion Panel 3</h5>
    </div>
    <div class="content">
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    </div>
  </li>
</ul>​

jQuery

jQuery(function() { // Document ready shorthand
    // Get the hash and remove the #
    var hash = window.location.hash.replace('#', '');

    if (hash != '') {
        // Cache targeted panel
        $target = $('.title[data-ref="' + hash + '"]');

        // Make sure panel is not already active            
        if (!$target.parents('li').hasClass('active')) {
            // Trigger a click on item to change panel
            $target.trigger('click');
        }
    }
});​

查看实际操作 http://jsfiddle.net/nTLNT/4/show/#panel-2

编辑代码 http://jsfiddle.net/nTLNT/4/

需要注意的是:在 jsfiddle 中编辑时,哈希值将不起作用。需要以完整模式查看。

UPDATE

如果您想要一个打开面板并更新哈希的链接。您需要向链接添加特定的类。在我的例子中我添加panel-btn

HTML

<a href="#panel-2" class="panel-btn">Goto Panel 2</a>

jQuery

$('.panel-btn').click(function(e){
    // Get the links href and remove the #
    target_hash = $(this).attr('href').replace('#','');  

    // Click targeted panel
    $('.title[data-ref="' + target_hash + '"]').trigger('click');

    // Update hash, so that if page is refreshed, target panel will open
    window.location.hash = target_hash;

    // Stop all default link functionality
    return false;
});

更新了 jsfiddle 视图 http://jsfiddle.net/nTLNT/7/show/

更新了 jsfiddle 代码 http://jsfiddle.net/nTLNT/7/

如果您正在寻找单击每个面板时的更多历史记录。您需要为每个添加一个点击事件.title并得到它的data-ref并将哈希更改为该值,如下所示:

$('.title').click(function(){
  // Get the data-ref
  hash = $(this).attr('data-ref');

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

通过 URL 哈希链接触发打开 Zurb Foundation Accordion 的相关文章

  • 使用 jQuery Select2 清除下拉菜单

    我正在尝试使用奇妙的方式以编程方式清除下拉菜单Select2 http ivaynberg github com select2 图书馆 使用 Select2 远程 ajax 调用动态填充下拉列表query option HTML
  • JQuery datepickers-从开始日期设置结束日期

    使用了两个 Jquery 日期选择器 StartDate 和 EndDate
  • 在随机位置启动 HTML5

    我有一个大约 2 小时长的音轨 我想在我的网站上使用它 我希望它在页面加载时在随机位置开始播放曲目 使用 HTML5 可以吗 我知道您可以使用 element currentTime 函数来获取当前位置 但是如何在完全下载之前获取曲目的总时
  • 如何在不阻止触摸启动的情况下防止“过度滚动历史导航”?

    我正在实现基于滑动的导航 但我在使用 Chrome 时遇到了麻烦 当页面向右拖动时 会触发新实现的功能 过度滚动历史导航 从而导致跳回 到 历史 1 为了防止这种情况 我必须打电话 preventDefault on touchstart
  • 将纯文本转换为 HTML

    我有一个脚本 在某个时刻我可以通过 Ajax 调用获取 HTML 数据 我必须将此 HTML 转换为纯文本 如下所示 div text data 我现在想扭转这一局面 再次将文本设为 HTML 我有一个简单的 Jquery 方法可以做到这一
  • 如何使 d3 饼图响应式?

    我有一个 PIE 图表 它工作正常 但我无法使其具有响应能力和可调整大小 我需要它与移动浏览器和 iPad 等兼容 div div
  • jQuery输入文件点击方法和IE上拒绝访问

    我尝试仅使用一个按钮作为输入文件 它在 Firefox Chrome Safari 中工作正常 但在 IE 中不行 提交表单时我总是收到 访问被拒绝 的消息 代码 input file click 有真正的解决方法吗 我在谷歌上浪费了大约2
  • 访问 nuxt 配置文件中的存储

    我想添加通过 Nuxt 静态生成的动态路由 我定义了一个客户端 服务器端存储asyncData方法 我想将这个存储值 一个数组 映射到我的nuxt config js文件使其成为 动态 静态 路线图nuxt generate命令 但如何访问
  • .live() 或 .livequery()

    我有一个Ajaxed的网站 Ajax的内容来自其他页面 例如about html contact html ajax 从名为 main content 的 div 获取内容 但是在 ajax 调用之后 我的其余脚本就中断了 比如tinysc
  • 将 Firebase FCM 添加到 ReactJS 应用程序

    我正在尝试向我的 ReactJS 应用程序中的用户发送推送通知 我已添加 firebase 请求用户通知权限 这正在发挥作用 但现在我想注册设备令牌 但这给了我错误 消息传递 我们无法注册默认的 Service Worker 无法注册 Se
  • 与 IE8 兼容的最新 jQuery 版本是什么?

    我正在开发 Bootstrap 3 网站 并且我使用的 jQuery 版本 1 9 1 遇到了一些问题 我升级到 2 1 0 我的问题消失了 但是 这破坏了 IE8 兼容性 因为 2 1 0 不再支持 IE8 并且 jQuery 在该浏览器
  • ES6继承:使用`super`访问父类的属性

    JavaScript 的super关键字 当我在 Chrome Babel TypeScript 上运行代码时 得到了不同的结果 我的问题是哪个结果是正确的 规范的哪一部分定义了这种行为 下面的代码 class Point getX con
  • 为什么我收到“在嵌套函数中通过 this 对类字段进行潜在无效的引用访问”错误

    在普通 JS 中 我的代码可以正常工作 对于这种情况 我想组件化我的Wall类应该在浏览器中显示用户上传的图像 同样 这在 vanilla JS 中正常工作 但在 JSX 中不起作用 我得到了一个potentially invalid re
  • 如何使用 window.onerror 捕获所有 javascript 错误? (包括道场)

    这个问题是后续问题javascript 如何在弹出警报中显示脚本错误 https stackoverflow com questions 2604976 javascript how to display script errors in
  • webpack中动态加载外部模块失败

    我正在尝试建立以下架构 一个核心 React 应用程序 它具有一些基本功能 并且能够在运行时加载其他 React 组件 这些额外的 React 组件可以按需加载 并且它们在构建核心应用程序时不可用 因此它们不能包含在核心应用程序的捆绑包中
  • 如何使用新的analytics.js跟踪多个帐户?

    我需要使用 Google 的新的analytics js 跟踪一个页面上两个帐户的综合浏览量 有大量教程和示例如何使用较旧的 ga js 进行操作 但我发现的只是这个分析文档页面 https developers google com an
  • javascript 是否有等效的 __repr__ ?

    我最接近Python的东西repr这是 function User name password this name name this password password User prototype toString function r
  • 使用 animate() 的简单 jQuery 幻灯片

    使用 jQuery 的animate 如何将每个图像滑动一次 使用Slick js https github com kenwheeler slick 像CSS动画 然后停在最后一个 div class slideshow style he
  • Javascript 浮点乘以 100 仍然有错误

    我有一个货币字段的文本输入 我在字段中输入 33 91 并在尝试使用 乘以 100 技术时得到以下结果 var curWth parseInt trans withdraw index val 100 3390 var curWth par
  • 如何映射轮播的子项数组?

    我正在尝试将 Carousel 组件包装在映射对象数组周围作为组件的子级 目前我只能让映射创建映射对象的 1 个子对象 轮播需要像这样

随机推荐

  • 如何使用 docker 文件运行 docker 命令

    我有一些在终端中运行的基本 docker 命令 现在我想要的是将所有基本 docker 命令使用到一个 docker 文件中 然后构建该 docker 文件 例如 考虑两个 docker 文件 文件 Docker1 Docker2 Dock
  • 指针到指针不支持 C++ 多态性

    我正在寻找一种正确的方法来清洁我的指针 这里是示例代码 class Parent protected int m Var public Parent m Var 0 virtual Parent void PubFunc class Chi
  • RVM 查找系统 gem 的可执行文件

    我已经安装了 RVM 和 ruby 版本 但是 如果我启动控制台并运行命令rails server bundle install等 我会收到此错误 bash usr bin rails usr bin ruby1 8 bad interpr
  • ModelAdmin 线程安全/缓存问题

    最终 我的目标是扩展 Django 的 ModelAdmin 以提供字段级权限 也就是说 给定请求对象的属性和正在编辑的对象的字段值 我想控制字段 内联是否可见给用户 我最终通过添加一个来实现这一点can view field 方法到 Mo
  • Python 中“while”和“for xrange”哪个更快

    我们可以进行数值迭代 如下所示 for i in xrange 10 print i 在 C 风格中 i 0 while i lt 10 print i i i 1 是的 我知道 第一个不太容易出错 更Pythonic 但它作为C 风格版本
  • UIImagePickerControllercameraViewTransform 在 iOS 10 中不起作用

    我已经在我的应用程序中实现了相机覆盖视图 相机覆盖视图在 iOS 9 中工作良好 但 iOS 10cameraViewTransform 无法工作如何解决此问题 请指导我 谢谢 我的工作代码 CGSize screenBounds UISc
  • 多个子查询

    是否可以从同一个表的日期记录中得到如下结果 Enrolled Enrolled as Email Enrolled as Text Deals Redeemed
  • C++ 构造函数中抛出异常

    我创建了一个类 如果一个成员为空 我不想创建该对象 这些是代码行 include verification CVerifObj hpp VerifObj VerifObj const fs path imgNameIn m image cv
  • 在 NSManagedObjectsDidChangeNotification 创建无限循环后设置 lastModificationDate 属性

    我添加了一个最后修改日期属性到我的所有实体以避免同步时重复UIManagedDocument使用 iCloud 我发现如果我使用离线设备 iPad 创建新实体 同时使用另一个在线设备 iPhone 创建相同的实体 就会发生这种情况 我想在对
  • 如何动态向类添加属性

    我想创建一个错误类 并且它具有一些静态属性 例如 Message InnerException Stacktrace Source 但我想添加一些动态属性 如果异常是FileNotFoundException 我想补充一下FileName财
  • 我应该保留错误的命名约定吗?

    我目前正在开发一个网站 这个网站经过了天知道有多少开发者之手 我不喜欢它的一件事是数据库中的每个表都有前缀 tbl 和每个字段 fld 我已经开始开发一项新功能 但面临以下问题 我的新表是否应该继续使用旧约定 我想我应该这样做 但我觉得这样
  • Python Telegram Bot - run_daily 不起作用

    我有与此相同的问题thread https stackoverflow com questions 61650938 telegram bot how to send messages daily new answer newreg 4f6
  • 为什么没有调用构造函数? [复制]

    这个问题在这里已经有答案了 这段代码的行为不符合我的预期 include
  • 使用jdk1.7获取java中文件最后访问时间的示例

    请朋友帮忙 我知道使用jdk1 7我们可以获取文件的最后访问时间 谁能给出一个带有代码的示例来获取文件的上次访问时间 既然您在问题中提到使用jdk1 7 你真的应该研究方法上的接口 BasicFileAttributes最后访问时间 htt
  • C++ 使用参数初始化引用

    我有以下代码 我想知道为什么它写出 22 而不是垃圾 class example public example int ea ref ea int ref int main example obj 22 cout lt lt obj ref
  • 当 LINQ 语句没有 where 子句时,为什么没有智能感知?

    谁能告诉我为什么我do not使用以下代码获取智能感知 var testDocuments from u in db TestDocuments orderby u WhenCreated descending select u but I
  • 如何解决Apache Camel中的“无法创建路由route1异常”?

    我对 Apache Camel 概念很陌生 我尝试使用 apache Camel API 编写示例代码 当我尝试运行代码时 出现以下异常 谁能帮我解决这个问题 缺少依赖库 所以我添加了这些库并解决了我的问题
  • Composer create-project 在本地包存储库上失败

    我正在尝试创建一个local存储库来测试作曲家项目 但是 composer create project repository url path to packages json vendor project name 失败了 Unexpe
  • 如何重新排列 igraph 图中边的顺序?

    我正在尝试在 igraph 中制作一个网络图 通过对某些重要边缘进行不同的着色来突出显示某些重要边缘 对于大图 它们经常被埋在其他图下面 例如 library igraph test lt barabasi game 200 m 2 E t
  • 通过 URL 哈希链接触发打开 Zurb Foundation Accordion

    我真的很希望能够通过问题散列中带有手风琴窗格的 URL 激活 打开 Zurb 基金会手风琴 就像 example com page accordion1 Foundation 已经可以做到这一点吗 或者是否很容易实现 老实说我没有任何线索