通过 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 .push 到 .get 调用中的数组给出空结果

    谁能告诉我为什么下面给我一个空字符串 当我console log contentArray in the get 回调函数它显示数据 但是当我尝试在下面的代码中执行它时 结果为空 sectionArray contentArray func
  • .push() 将多个对象放入 JavaScript 数组中返回“未定义”

    当我将项目添加到beats数组然后console log用户时 我得到了数组中正确的项目数 但是当我检查 length 时 我总是得到 1 尝试调用索引总是会给我 未定义 如下所示 Tom beats 1 我想我错过了一些明显的东西 但这让
  • JQuery UI Selectable 插件:当 div 溢出时使滚动条不可选择

    我有一个 div 设置为overflow auto 该 div 的内容是可选择的 使用 jQuery UI 当 div 溢出并出现滚动条时 滚动条本身变为可选择状态 因此滚动效果不佳 在 FF Chrome 中 我可以滚动 div 但我得到
  • 如何使用javascript确保元素仅在圆上朝一个方向移动?

    好吧 我承认我对三角学真的很糟糕 出于上下文的考虑 我将添加我在这里提到的问题中的内容 参考问题 https stackoverflow com a 39429290 168492 https stackoverflow com a 394
  • ReactTransitionGroup 不适用于 React-redux 连接组件

    我正在开发一个更大的项目 但我创建了这个简短的示例来说明问题 如果我使用Box组件 它的工作原理 它在控制台中输出componentWillEnter and componentWillLeave当我们点击按钮时 如果我使用BoxConta
  • 如何通过单击链接来更改 div 的内容?

    这是我的网页的 修改后的 jsfiddle 它还有很多 而且定位是正确的 与此相反 http jsfiddle net ry0tec3p 1 http jsfiddle net ry0tec3p 1 a href class btn1 st
  • JavaScript 中的 Promise 有什么意义?

    一个承诺是一个 可能现在可用 或将来可用 或永远不可用的值 来源 MDN 假设我有一个想要处理图片的应用程序 图片已加载 例如在算法在后台使用它之后 或某种其他类型的延迟 现在我想检查一下图片是否可以在future 通过使用承诺 而不是回调
  • 如何使用 Javascript 设置查询字符串

    有没有办法使用 javascript 设置查询字符串的值 我的页面有一个过滤器列表 单击该列表时 它将更改右侧的页内结果窗格 我正在尝试更新 url 的查询字符串值 因此如果用户离开页面 然后单击 后退 按钮 他们将返回到最后一个过滤器选择
  • onclick 事件中未调用函数

    我想在每个 YouTube 链接的末尾添加一些 HTML 以在 litebox 中打开播放器 到目前为止 这是我的代码 document ready function var valid url new RegExp youtube com
  • mongodb 聚合 - 累积字段的不同组值

    如果我有Player表格文件 name String score Int 我有Group文档 其中组代表玩家列表 groupName String players ObjectID 玩家可以属于多个组 我想做一个聚合Player文档 按以下
  • 如何始终将焦点保持在文本框中

    我创建了一个包含两个 div 的 HTML 页面 左侧的 div 页面的 90 是 ajax 结果的目标 右侧的 div 页面的 10 包含一个文本框 该页面的想法是在文本框中输入零件编号 通过条形码扫描仪 并显示与该零件编号匹配的绘图 显
  • 如何计算特定字符在字符串中出现的次数

    我正在尝试创建一个函数来查看数组中的任何字符是否在字符串中 如果是 有多少个 我尝试计算每一种模式 但是太多了 我尝试使用 Python 中的 in 运算符的替代方案 但效果不佳 function calc fit element var
  • LeafleteachLayer函数不会迭代所有Layer

    使用 GeoJSON 数据数组创建一些标记 getJSON GetLocationsServlet function data L geoJSON data onEachFeature onEachFeature addTo mymap G
  • 聆听 Angular 2 中的元素可见性

    我正在为我的网络应用程序使用 Bootstrap 和 Angular 2 v4 我想监听指令中的元素以了解可见性变化 我的元素有一个可以隐藏其子元素的父元素hidden sm up我需要在每次隐藏或显示时触发一个函数 div hidden
  • 使用 Javascript 设置 cookie [重复]

    这个问题在这里已经有答案了 我正在尝试构建我的第一个移动应用程序 它需要连接到我的 mysql 数据库并使用 json 返回数据 这很好 目前我有一个登录系统 一旦确定用户名和密码存在 它就会返回一条成功消息 对于下一步 我想在我的页面上使
  • 使用 Jade 评估自定义 javascript 方法 (CircularJSON)

    我想通过 Jade 将一个对象解析为客户端 JavaScript 通常这会起作用 script var object JSON parse JSON stringify object but my object is circular ht
  • Rails 3.1+ 的 Jasmine 与 Mocha JavaScript 测试 [已关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我对茉莉花有经验并且非常喜欢它 有谁有 Jasmine 和 Mocha 的经验 特别是 Rails 的经验吗 我想知道是否值得转用 我已经在 J
  • react-native - 图像需要来自 JSON 的本地路径

    你好社区 我正在react native中开发一个测试应用程序 并尝试从本地存储位置获取图像 我实际在做什么 我将图像直接链接源提供给 var 并在渲染函数中调用此方法 react 0 14 8 react native 0 23 1 np
  • 在 iOS 7 Safari 中,如何区分通过边缘滑动与后退/前进按钮的 popstate 事件?

    在 iOS 7 Safari 中 现在有两种后退 前进导航方式 使用底部的传统后退 前进按钮箭头或从屏幕边缘滑动 我正在使用动画在 ajax 应用程序中的页面之间进行转换 但如果用户通过边缘滑动进行导航 我不想触发该转换 因为这本身就是一个
  • 没有输入的 jQuery 日期选择器

    我有一个相当复杂的网络应用程序 我想向其中添加一些日期选择 UI 我遇到的问题是我无法从文档中弄清楚如何真正控制日期选择器的出现方式和时间 不涉及任何表单元素 不 我不会添加秘密表单字段 因此简单的开箱即用方法根本行不通 我希望有人可以提供

随机推荐

  • 如何使用 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 已经可以做到这一点吗 或者是否很容易实现 老实说我没有任何线索