我想接受我的JQuery Accordion,并且在最后一个元素上打开它,让每个窗格连续下拉(以向用户说明还有其他可供内容查看的内容窗格)。我可以使用Accordion.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 :(得分:1)
使用setTimeout如何做到这一点。我认为你的问题是你在第一次激活完成之前调用了激活。
$(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);
});
答案 1 :(得分:0)
它支持多次激活:http://jsfiddle.net/morrison/v2FCJ/。
但是,您的代码在第一次激活之前触发第二次激活。手风琴显然不支持排队命令。