Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery工具:如何打开/关闭accordio部分?_Jquery_Css_Accordion_Jquery Tools - Fatal编程技术网

jQuery工具:如何打开/关闭accordio部分?

jQuery工具:如何打开/关闭accordio部分?,jquery,css,accordion,jquery-tools,Jquery,Css,Accordion,Jquery Tools,这是我的问题 我使用jQuery工具构建了一个功能完美的手风琴。很容易相处 客户端回来说,现在accordion必须是可折叠的,这不在原始规范中。不幸的是,jQuery工具accordion没有内置此功能,所以我一直在编写自己的代码 我已经接近了,但没有什么是100%有效的。我在这里创建了一个JSFIDLE代码: 折叠代码工作正常 // Code to collapse accordions $("#accordion > h2").click(function(){ if (this.c

这是我的问题

我使用jQuery工具构建了一个功能完美的手风琴。很容易相处

客户端回来说,现在accordion必须是可折叠的,这不在原始规范中。不幸的是,jQuery工具accordion没有内置此功能,所以我一直在编写自己的代码

我已经接近了,但没有什么是100%有效的。我在这里创建了一个JSFIDLE代码:

折叠代码工作正常

// 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);
第二个块试图绕过jquerytoolsapi,并且可以工作,但是在打开时我得到了一个双重动画,我假设这与jquerytools的功能冲突

$(this).parent().children("h2").removeClass("current");
$(this).parent().children("div").slideUp("slow");
$(this).toggleClass("current");
$(this).next("div").slideToggle("slow");
如果有人能指出我做错了什么,那将是一个巨大的帮助

谢谢

编辑: 仔细想想,第一块“重新打开”代码不起作用是有道理的。因为我只是从打开的accordion中删除类,所以实际上我并没有告诉jQuery工具它已经关闭了。所以,据jQuery工具所知,当我点击它重新打开它时,accordion已经打开了,不需要再次打开。我想我需要找到一种方法来告诉jQuery工具手风琴已经关闭,并且代码可以工作。

我找到了这段代码:我应用了这个jQuery插件,并且能够成功地让它工作。感谢所有可能调查过此事的人

在我搜索“重新单击关闭jQuerytools选项卡”时,我一直在查找此帖子。jQuerytools已经更新了其核心代码,尽管上面的代码适用于以前的版本,但我已经编写了一个名为“closeOnClick”的新密码,以匹配jQueryUI的样式

        $el.tabs(
        ".envs div.panes",
        {
            tabs: "h3",
            effect: 'slide',
            collapse: false,
            closeOnClick: true,
            initialIndex: null
        }
    );


Tabs.js代码是直接从jQuerytools的github中提取出来的

它在我这方面非常有效。手风琴工作正常。它可以正确折叠,但如果您单击同一个按钮重新打开,它将不起任何作用。见我的编辑上面。谢谢