关于jQuery UI 使用心得及技巧

2020-05-19 07:29:43易采站长站整理



图 9


  好吧,我还没强大到可以重写这个Accordion插件,于是我谷歌“expander”” multi open accordion”之类的,确实还是有很多朋友是有这样的需求的,并且也有牛人给出了一些解决方法,但都有点复杂。最后的最后,我突然顿悟,把每个section都定义成accordion不就行了嘛。一个acction同时只能打开一个secton,如果我想要每个section都可任意打开关闭而不影响别的部分,那把每个section用accordion代替就好了,并且accordion里只定义一个section。


  说起来有点晕,下面修改之前的代码,定义id分别为accordion1,accordion2,accordion3三个div并放入相应内容:

<div id=”tabs-1″>
<div id=”accordion1″>
<h3><a href=”#”>Section 1</a></h3>
<div>content of section 1</div>
</div>
<div id=”accordion2″>
<h3><a href=”#”>Section 2</a></h3>
<div>content of section 2</div>
</div>
<div id=”accordion3″>
<h3><a href=”#”>Section 3</a></h3>
<div>content of section 3</div>
</div>
</div>

然后修改脚本代码:

<script type=”text/javascript”>
$(document).ready(function () {
$(“#tabs”).tabs();
$(“#accordion1”).accordion();
$(“#accordion2”).accordion();
$(“#accordion3”).accordion();
})
</script>

运行程序,发现三个secton同时打开了,并且还不能关闭!这显然也不是我们想要的结果。原因很简单,如果上面所说的accordion这个插件有且仅有一个section是被打开的,每个accordion里我们只定义了一个section,那这个section毫无疑问应该处于被打开状态,由于只有它一个,把它关闭了之后没有其他section可以打开,所以索性我们想关它都关不掉了。
  但幸运的是,我们可以通过设置accordion的collapsible为true来让这个唯一的section可以进行折叠打开操作。只需修改脚本如下:

<script type=”text/javascript”>
$(document).ready(function () {
$(“#tabs”).tabs();
$(“#accordion1”).accordion({ collapsible: true });
$(“#accordion2”).accordion({ collapsible: true });
$(“#accordion3”).accordion({ collapsible: true });
})
</script>

再次运行程序,Okay,一切如我们所想的那样。