2011-05-02 16 views
1

我想带上我的JQuery Accordion,并在最后一个元素开始打开时,让每个窗格连续下拉(以向用户清楚说明还有其他可供他们查看的内容窗格)。我可以使用Accordion.accordion(“activate”,index)更改打开的窗格,但它只能使用一次(连续调用似乎没有任何效果?)。让JQuery Accordion在所有窗格中滚动?

现在下面的代码初始化手风琴并激活窗格一,但对窗格二没有任何影响。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 
<head> 
<title>Page</title> 

<link rel="stylesheet" href="stylesheet.css" type="text/css" /> 

<script type="text/javascript" src="js/jquery-1.5.1.min.js"></script> 
<script type="text/javascript" src="js/jquery-ui-1.8.12.custom.min.js"></script> 
<script type="text/javascript"> 
    $(function() { 
     nyah = $("#accordion").accordion({ 
      event: "mouseover", 
      animated: "bounceslide" 
     }); 
     nyah.accordion("activate", 1); 
     for (var i = 0; i < 1000; i++) { 
      i++; 
     } 
     nyah.accordion("activate", 2); 
    }); 
    </script> 

</head> 
<body> 
<div id = "accordion"> 
<h3><a href="#">One</a></h3> 
<div><img src="1.png" alt="" /></div> 
<h3><a href="#">Two</a></h3> 
<div><img src="2.jpg" alt="" /></div> 
<h3><a href="#">Three</a></h3> 
<div><img src="3.jpg" alt="" /></div> 
</div> 
</body> 

</html> 

回答

0

它不支持多激活:http://jsfiddle.net/morrison/v2FCJ/

但是,在完成第一个代码之前,您的代码正在触发第二次激活。手风琴并不明显支持排队命令。

+0

感谢的jsfiddle链接,这是超级有用 – humanstory 2011-05-02 20:32:24

1

如何使用setTimeout这样的事情。我认为你的问题是你在第一次激活完成之前调用激活。

http://jsfiddle.net/xgFpD/1/

$(function() { 
    var accordionCount = $("#accordion h3").length; 

    nyah = $("#accordion").accordion({ 
     event: "mouseover", 
     animated: "bounceslide" 
    }); 



    function doExpand(index) { 

     nyah.accordion("activate", index); 

     if (index + 1 <= accordionCount) { 
      setTimeout(function() { 
       doExpand(index + 1); 
      }, 1000); 
     } 
    } 

    doExpand(0); 
}); 
+0

欢呼声,那做的伎俩! – humanstory 2011-05-02 20:25:42

+0

注意到我从1开始而不是0.更新并且现在它更平滑,在交换到1之前显示0秒。 – 2011-05-02 20:27:32

相关问题