javascript - 如何使用 Adi Palaz 的嵌套 Accordion 展开全部/折叠全部

标签 javascript html css nested accordion

Adi Palaz's Nested Accordion

这看起来应该很简单,但我似乎无法弄清楚这一点,我一直坐在这里,在没有解决方案的情况下将我的头撞在 table 上已经四个小时了。

您会注意到在页面上的演示中,有展开所有/折叠所有按钮,这些按钮会触发打开或关闭所有 Accordion 面板的功能。

我不想使用那些按钮。我想编写自己的函数,并在用户在页面其他地方的 DIV 上完成手势后触发全部展开或全部折叠函数。

但我似乎无法弄清楚如何调用作者在按钮上使用的相同函数来正确展开和折叠 Accordion 面板。

如果有帮助,我设置了一个测试页面来玩: http://dl.dropbox.com/u/22224/Newfolder/nested_accordion_demo3.html

下面是它需要工作的两个脚本:

Nested Accordion Script

Expand.js

求助!我很绝望,作者没有回复电子邮件!

最佳答案

我能够使用以下代码解决全部展开/折叠问题,希望它也对您有用。

function expand(id) {
    var o = $.extend({}, $.fn.accordion.defaults, null);
    var containerID = o.container ? id : '', objID = o.objID ? o.objID : o.obj + o.objClass, Obj = o.container ? containerID + ' ' + objID : id, El = Obj + ' ' + o.el, hTimeout = null;
    $(El + ' a.trigger').closest(o.wrapper).find('> ' + o.next).show().closest(o.wrapper).find('a.trigger').addClass('open').data('state', 1);
}

function collapse(id) {
    var o = $.extend({}, $.fn.accordion.defaults, null);
    var containerID = o.container ? id : '', objID = o.objID ? o.objID : o.obj + o.objClass, Obj = o.container ? containerID + ' ' + objID : id, El = Obj + ' ' + o.el, hTimeout = null;
    $(El + ' a.trigger').closest(o.wrapper).find('> ' + o.next).not('.shown').hide().closest(o.wrapper).find('a.open').removeClass('open').data('state', 0);
}

Example:

expand('#accordion1');
collapse('#accordion1');

关于javascript - 如何使用 Adi Palaz 的嵌套 Accordion 展开全部/折叠全部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9788519/

相关文章:

javascript - 带进度条AJAX的多文件上传

javascript - 将网站更改为 m。在移动设备上时

CSS避免使用Flex的位置高于另一个

javascript - 如何使用 promises 和 node.js 正确检查和记录 http 状态代码?

javascript - 是什么导致我的 Canvas 绘图在某些值(2^15,一个)处中断和跳过?

javascript - 将 tidy-html5 与内联样式一起使用

html 标签 radio 适用于桌面和模拟器,但不适用于 iOS Safari

php - 如何防止浏览器缓存图像?

c# - 在可视化 Web 部件中从 javascript 调用代码隐藏函数

javascript - Sequelize 返回比请求更多的字段