Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.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
Javascript jQuery Accordion-在pageload上打开特定部分_Javascript_Jquery_Accordion - Fatal编程技术网

Javascript jQuery Accordion-在pageload上打开特定部分

Javascript jQuery Accordion-在pageload上打开特定部分,javascript,jquery,accordion,Javascript,Jquery,Accordion,我有一个页面上jQuery Accordion的基本实现(使用1.3.2、jQueryUICore1.72和jQueryUIAccordion 1.7.2),我希望在页面加载时打开第二部分。我尝试了很多方法,但似乎都不管用 总纲: <script type="text/javascript"> $(function() { $("#accordion").accordion({ event: "mouseover" }); }); $(函数(){

我有一个页面上jQuery Accordion的基本实现(使用1.3.2、jQueryUICore1.72和jQueryUIAccordion 1.7.2),我希望在页面加载时打开第二部分。我尝试了很多方法,但似乎都不管用

总纲:

<script type="text/javascript"> $(function() {
    $("#accordion").accordion({
        event: "mouseover"
    });

});
$(函数(){
$(“手风琴”)。手风琴({
事件:“鼠标悬停”
});
});

身体手风琴:

<div id="accordion">
<h3><a href="#">Headline 001</a></h3>
<div>
<ul>
     <li><a href="#1">Link 001</a></li>
     <li><a href="#2">Link 002</a></li>
     </ul>
</div>
<h3><a href="#">Headline 002</a></h3>
<div>
     <ul>
    <li><a href="#3">Link 003</a></li>
     <li><a href="#4">Link 004</a></li>
     </ul>
</div>

任何帮助都将不胜感激

$("#accordion").accordion({ active: 2, event: "mouseover" });
你应该做这个把戏

更新

如果这不起作用,试试看

$("#accordion").accordion({  event: "mouseover" }).activate(2);
(注意:此更新速度更快,感谢您的评论。老实说,它应该与“active:2”参数一起工作,不知道为什么没有。)

试试看

$("#accordion").activate(index);

下面的方法有效吗

$(function() {
    $("#accordion").accordion({
        event: "mouseover",
        collapsible: true,
        active: 2
    });

});

我已经解决了这个问题,因为我必须创建一个menu.php,我已经包含了每个页面。在我们的项目中有一个手风琴(一个菜单元素,有两个子菜单)。因此,当访问者在子菜单上时,手风琴打开,所选链接(使用CSS而不是jQuery突出显示)处于活动状态。但是当访问者在不同的页面上时,手风琴工作正常

下面是javascript:

var containsParams = /teacher|student/i.test(window.location.href), //regexp with string params
accordion = $("li.accordion"); // the accordion as a global

accordion.accordion({ //accordion setup on every page
    animated : !containsParams,
    active : containsParams,
    collapsible : true,
    event : "click",
    header : "h2"
});

//I like to use "self calling methods" since many times I need a main onload event and this way it's clear for every page and my main function still remains
(function () {
    if (containsParams) accordion.accordion("activate", 0);
})();
希望你喜欢


致以最良好的祝愿!=]

打开特定选项卡的正确方式:

$("#accordion").accordion({
    collapsible  : true,
    active       : false,
    heightStyle  : "content",
    navigation   : true
}); 
设置选项:

//$("#accordion").accordion('option', 'active' , "INSERT YOUR TAB INDEX HERE");
$("#accordion").accordion('option', 'active' , 1);
或者您可以使用如下哈希:

if(location.hash){

    var tabIndex = parseInt(window.location.hash.substring(1));     
    $("#accordion").accordion('option', 'active' , tabIndex);

}
如果您使用;,请投票


谢谢

您应该编写
活动:1而不是2,因为accordio从0索引节,而不是从1索引节。工作代码如下所示:

$("#accordion").accordion({ active: 1, event: "mouseover" });

希望它能有所帮助。

正如其他人所提到的,以下内容将使它在打开时处于活动状态:

$("#accordion").accordion({ active: 1 });

它是活动的:1,因为它是手风琴索引的第二个
{0,1,2,…}
其他答案似乎有些混乱,因为元素的内容包含字符“
2
”…

,这只会导致手风琴打开两个片段!我错过了什么吗$手风琴({active:2,event:“mouseover”});这很奇怪,手风琴不能一次打开多个物品!我知道。。。现在根本不起作用了。。。javascript肯定有问题;更新工作,但关闭所有手风琴。。。。!已将索引修改为0并已解析。。。。非常感谢!更新不是很慢吗?如中所示,第一次连接手风琴,然后再次运行整个过程以激活索引。另外,Darman的答案在你创建它之后会是一个更快的方法,即:
$('#accordion').accordion({event:“mouseover”})。activate(2)
不确定这是什么时候做的,但是activate索引是基于0的,所以对于这个问题,用户会使用
active:1
我喜欢这个答案,因为它演示了在稍微复杂的情况下的用法。