张经纬的博客 -

jQuery 列表视图

没事写个玩玩,觉得jQ的动画功能也很强大。

Demo:http://www.zhangjingwei.com/demo/listview/

$(document).ready(function() {
    $('#wrap ul.unviewable').hide();
    $('#wrap h2').hover(function() {
        $(this).css({
            'cursor': 'pointer',
            'background': '#047'
        });
    },
    function() {
        $(this).css({
            'cursor': 'default',
            'background': '#046'
        });
    })
}) $('#wrap h2').click(function() {
    var id = this.id;
    if ($(this).next().attr('class') != 'viewable') {
        $('#wrap ul.viewable').slideUp('slow',
        function() {
            $(this).attr({
                'class': 'unviewable'
            }).hide();
        });
        $('#' + id).next().slideDown('slow',
        function() {
            $(this).attr({
                'class': 'viewable'
            }).css({
                height: 'auto'
            });
        });
    }
})
ul, li, h2 {
	margin:0;
	padding:0;
}
li {
	list-style:none;
}
#wrap {
	width:300px;
	border:1px solid #000;
	padding:1px;
}
#wrap h2 {
	padding: 2px 10px 3px 10px;
	border: 2px outset #5AA0B8;
	background: #046;
	color: #FFF;
	height: 19px;
	vertical-align: bottom;
	font:14px/1.6 Arial, Helvetica, sans-serif;
}
#wrap ul {
	height:auto;
}
#wrap ul li {/*display:inline;*/
	padding-left:10px;
}
#wrap ul li a {
	font:12px/1.6 Arial, Helvetica, sans-serif;
	text-decoration:none;
}
<ul id="wrap">
  <li>
    <h2 id="arms">武器特色</h2>
    <ul class="viewable">
      <li><a href="#">3</a></li>
      <li><a href="#">大刀</a></li>
      <li><a href="#">长枪</a></li>
      <li><a href="#">弓箭</a></li>
      <li><a href="#">火枪</a></li>
      <li><a href="#">宝剑</a></li>
      <li><a href="#">大刀</a></li>
      <li><a href="#">长枪</a></li>
      <li><a href="#">弓箭</a></li>
      <li><a href="#">火枪</a></li>
    </ul>
  </li>
  <li>
    <h2 id="equip">装备特色</h2>
    <ul class="unviewable">
      <li><a href="#">2</a></li>
      <li><a href="#">大刀</a></li>
      <li><a href="#">长枪</a></li>
      <li><a href="#">弓箭</a></li>
      <li><a href="#">火枪</a></li>
      <li><a href="#">宝剑</a></li>
      <li><a href="#">大刀</a></li>
      <li><a href="#">长枪</a></li>
      <li><a href="#">弓箭</a></li>
      <li><a href="#">火枪</a></li>
      <li><a href="#">宝剑</a></li>
      <li><a href="#">大刀</a></li>
      <li><a href="#">长枪</a></li>
      <li><a href="#">弓箭</a></li>
      <li><a href="#">火枪</a></li>
      <li><a href="#">宝剑</a></li>
      <li><a href="#">大刀</a></li>
      <li><a href="#">长枪</a></li>
      <li><a href="#">弓箭</a></li>
      <li><a href="#">火枪</a></li>
      <li><a href="#">宝剑</a></li>
      <li><a href="#">大刀</a></li>
      <li><a href="#">长枪</a></li>
      <li><a href="#">弓箭</a></li>
      <li><a href="#">火枪</a></li>
      <li><a href="#">宝剑</a></li>
    </ul>
  </li>
  <li>
    <h2 id="other">其他特色</h2>
    <ul class="unviewable">
      <li><a href="#">1</a></li>
      <li><a href="#">大刀</a></li>
      <li><a href="#">长枪</a></li>
      <li><a href="#">弓箭</a></li>
      <li><a href="#">火枪</a></li>
      <li><a href="#">宝剑</a></li>
      <li><a href="#">大刀</a></li>
      <li><a href="#">长枪</a></li>
    </ul>
  </li>
</ul>

原文链接|

目前 共有 5 条评论 ,点此发表评论

  1. sniffer

    五月 28th, 2009 @ 10:25

    用toggle实现开关不更简洁?

    回复

  2. 阿呆

    十月 9th, 2009 @ 16:36

    是写的挺麻烦的

    回复

    张经纬 reply on 十月 9th, 2009 20:23:

    是的,当时用的还不熟悉。:)

    回复

  3. 阿呆

    十月 9th, 2009 @ 16:42

    $(document).ready(function() {
    $(‘h2′).click(function() {
    $(this).next(‘ul’).slideToggle(‘fast’)
    .siblings(‘div:visible’).slideUp(‘fast’);
    });

    回复

    张经纬 reply on 十月 9th, 2009 20:27:

    这个写法有问题,第一原思路对打开的不操作,这里没体现。第二,从你代码内的意思,可能你对siblings()方法的理解有误解,$(this).siblings()取得的是当前li内的另外一个ul元素,而不是其他li内的ul元素。

    回复