这是我的问题。
我使用jQuery Tools构建了一个功能完善的手风琴。非常容易使用。
客户回来说,现在手风琴必须是可折叠的,这不符合原始规范。不幸的是,jQuery Tools手风琴没有内置的这个功能,所以我一直在研究我自己的代码。
我已经接近了,但100%无效。我在这里创建了一个代码的JSFiddle:http://jsfiddle.net/4ubZs/15/
崩溃代码正常工作。
// Code to collapse accordions
$("#accordion > h2").click(function(){
if (this.className == "current") {
$(this).removeClass("current");
$(this).next("div").slideToggle("slow");
} else {
重新开放是一个问题。我尝试了两种不同的解决方案来重新打开。第一个代码块正在尝试使用Tools API。它不会重新打开最近关闭的选项卡,但是如果我用.click()调用中的实际索引号替换“current_tab”,它将起作用,但如果我尝试以编程方式获取索引则不行。
var api = $("#accordion").data("tabs");
var current_tab = api.getIndex(this);
api.click(current_tab);
第二个块试图绕过jQuery Tools API,并且可以工作,但是在打开时我得到了一个双动画,我假设它与jQuery Tools功能有冲突。
$(this).parent().children("h2").removeClass("current");
$(this).parent().children("div").slideUp("slow");
$(this).toggleClass("current");
$(this).next("div").slideToggle("slow");
如果有人能够指出我做错了什么,那将是一个巨大的帮助。
谢谢!
编辑: 考虑到这一点,第一块“重新打开”代码不起作用是有道理的。因为我只是从开放式手风琴中删除类,我实际上并没有告诉jQuery Tools它已被关闭。因此,当我点击它重新打开它时,就jQuery Tools而言,手风琴已经打开,不需要再次打开。我想我需要想办法告诉jQuery Tools手风琴是关闭的,并且代码可以工作。
答案 0 :(得分:1)
在我搜索"关闭jQuerytools选项卡时重新点击"我一直在找这个帖子。 jQuerytools更新了它的核心代码,即使上面的代码适用于以前的版本,我也写了一个名为" closeOnClick"以匹配jQuery UI的风格。
$el.tabs(
".envs div.panes",
{
tabs: "h3",
effect: 'slide',
collapse: false,
closeOnClick: true,
initialIndex: null
}
);
https://jsfiddle.net/googabeast/co8nxm8y/
Tabs.js代码是直接从jQuerytools的github中提取的
答案 1 :(得分:0)
我找到了这段代码:http://pastie.org/1421642/wrap我应用了这个jquery插件,并且能够成功运行它。感谢任何可能已经调查过的人!