2011-05-02 47 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

相關問題