这个效果用jQuery做是很方便的,根本不需要搞得很复杂。

网上有些效果DEMO不仅用了jQuery还引用一两个封装文件,真是匪夷所思。

最初想到了toggle:

jQuery(document).ready(function() {
//初始化第一个默认显示: jQuery("#list_content_list .firstblock").css({display:"block"});
jQuery("#list_content_list .firstshow").find('.pparrow').attr({src:"images/pparrowup.jpg"}); jQuery("#list_content_list a.l1").click(function() {
jQuery(this).siblings().slideToggle('slow');
jQuery(this).parent().siblings().find('ul.side2').hide();
return false;
});
//标题上一个箭头图片的变换,点击的时候来回切换SRC:
jQuery("#list_content_list a.l1").toggle(
function () {
//这里其实还需要重置所有的箭头来使旧的点击过的箭头复原。
jQuery(this).parent().siblings().find('.pparrow').attr({src:"images/pparrowdown.jpg"});
jQuery(this).find('.pparrow').attr({src:"images/pparrowup.jpg"});
},
function () {
jQuery(this).parent().siblings().find('.pparrow').attr({src:"images/pparrowup.jpg"});
jQuery(this).find('.pparrow').attr({src:"images/pparrowdown.jpg"});
}
);
});

凌乱的逻辑

后来我想通了,既然有toggle还要click事件干嘛咧?(大误!)

jQuery(document).ready(function() {
jQuery("#list_content_list a.l1").css({cursor:"pointer"});
jQuery("#list_content_list a.l1").toggle(
function () {
jQuery(this).siblings().slideToggle('normal');
jQuery(this).parent().siblings().find('ul.side2').hide();
jQuery(this).parent().siblings().find('.pparrow').attr({src:"images/pparrowdown.jpg"});
jQuery(this).find('.pparrow').attr({src:"images/pparrowup.jpg"});
},
function () {
jQuery(this).siblings().slideToggle('normal');
jQuery(this).parent().siblings().find('ul.side2').hide();
jQuery(this).parent().siblings().find('.pparrow').attr({src:"images/pparrowup.jpg"});
jQuery(this).find('.pparrow').attr({src:"images/pparrowdown.jpg"});
}
);
});

错误的逻辑

其实是有click还要toggle干嘛咧!来来回回变完全脱离用户意识了,又会再现不按规律出牌的BUG。

jQuery(document).ready(function() {
jQuery("#list_content_list a.l1").css({cursor:"pointer"});
jQuery("#list_content_list a.l1").click(
function () {
jQuery(this).siblings().slideToggle('normal');
jQuery(this).parent().siblings().find('ul.side2').hide();
jQuery(this).parent().siblings().find('.pparrow').attr({src:"images/pparrowdown.jpg"});
jQuery(this).find('.pparrow').attr({src:"images/pparrowup.jpg"});
}
);
});

但是这样,箭头还是只有在点其他东西的时候复原。点自己却不会复原了。

这时我又想到了toggle,万恶的toggle啊,还是会脱离用户体验啊!

最终灵机一动,终于摈弃了腐朽的思维:为什么不作判断呢...

完美的版本终于出世:

jQuery(document).ready(function() {
jQuery("#list_content_list a.l1").css({cursor:"pointer"});
jQuery("#list_content_list a.l1").click(
function () {
jQuery(this).siblings().slideToggle('normal');
jQuery(this).parent().siblings().find('ul.side2').hide();
jQuery(this).parent().siblings().find('.pparrow').attr({src:"images/pparrowdown.jpg"});
if(jQuery(this).find('.pparrow').attr('src')=="images/pparrowdown.jpg"){
jQuery(this).find('.pparrow').attr({src:"images/pparrowup.jpg"});
}
else{
jQuery(this).find('.pparrow').attr({src:"images/pparrowdown.jpg"});
}
}
);
});

如果有三级菜单的话,比如三级菜单ul的class是side3:

jQuery(document).ready(function() {

    jQuery("#list_content_list a.l1").click(function() {

        jQuery(this).siblings().slideToggle('slow');
jQuery(this).siblings().find('ul.side3').hide();//如果有三级菜单的话
jQuery(this).parent().siblings().find('ul.side2,ul.side3').hide();
return false
}); });

如果要一打开的时候第一个就能展开,就加上两句初始化:

//附上特殊的class分别控制点击部分(本例中l1)和下拉部分(本例中side2)
jQuery("#list_content_list .firstblock").slideToggle('slow');
jQuery("#list_content_list .firstshow").find('.pparrow').attr({src:"images/pparrowup.jpg"});

谁知道交差的时候,项目管理说,你还是全部折叠起来吧。PSD只是给你看里面是什么样子。。。

不过,先做出来以备后患倒是不算白费功夫。

HTML样例:

<body>
<ul id="list_content_list"> <li class="L1"> <a href="1" class="l1"><img src="data:images/yamaha_0828_03.jpg" width="765" height="123" /></a> <ul class="side2" style="display:none"> <li class="L2"> <a href="products/list?category_id=2" class="l2">数字调音台</a> <ul class="side3" style="display:none"> <li class="L3"><a href="products/18" class=" l3">PM5D,PM5D-RH</a></li> <li class="L3"><a href="products/17" class=" l3">DSP5D</a></li> <li class="L3"><a href="products/197" class=" l3">CL 系列</a></li> <li class="L3"><a href="products/16" class=" l3">M7CL-48ES / 48 / 32</a></li> <li class="L3"><a href="products/15" class=" l3">LS9-32,LS9-16</a></li> <li class="L3"><a href="products/14" class=" l3">DM2000VCM</a></li> <li class="L3"><a href="products/7" class=" l3">DM1000VCM</a></li> <li class="L3"><a href="products/6" class=" l3">02R96VCM</a></li> <li class="L3"><a href="products/191" class=" l3">01V96i</a></li> <li class="L3"><a href="products/2" class=" l3">IMX644</a></li> <li class="L3"><a href="products/5" class=" l3">01V96VCM(停产)</a></li> <li class="L3"><a href="products/20" class="nobottomline l3">PM1DV2(停产)</a></li> </ul>
</li> <li class="L2"> <a href="products/list?category_id=3" class="l2">模拟调音台</a> <ul class="side3" style="display:none"> <li class="L3"><a href="products/194" class=" l3">MGP系列</a></li> <li class="L3"><a href="products/28" class=" l3">MG32/14FX,MG24/14FX</a></li> <li class="L3"><a href="products/27" class=" l3">MG206C,MG206C-USB</a></li> <li class="L3"><a href="products/26" class=" l3">MG166CX,MG166CX-USB</a></li> <li class="L3"><a href="products/25" class=" l3">MG166C,MG166C-USB</a></li> <li class="L3"><a href="products/24" class=" l3">MG124C,MG124CX</a></li> <li class="L3"><a href="products/23" class=" l3">MG102C</a></li> <li class="L3"><a href="products/170" class=" l3">MG82CX</a></li> <li class="L3"><a href="products/21" class=" l3">IM8-40, IM8-32, IM8-24 </a></li> <li class="L3"><a href="products/22" class="nobottomline l3">PM5000(停产)</a></li> </ul>
</li> <li class="L2"> <a href="products/list?category_id=4" class="l2">带功放调音台</a> <ul class="side3" style="display:none"> <li class="L3"><a href="products/30" class=" l3">EMX5016CF</a></li> <li class="L3"><a href="products/29" class="nobottomline l3">EMX5014C</a></li> </ul>
</li> </ul>
</li> <li class="L1"> <a href="6" class="l1"><img src="data:images/yamaha_0828_12.jpg" width="765" height="123" /></a> <ul class="side2" style="display:none"> <li class="L2"> <a href="products/list?category_id=7" class="l2">TXn系列</a> <ul class="side3" style="display:none"> <li class="L3"><a href="products/51" class=" l3">TX6n</a></li> <li class="L3"><a href="products/176" class=" l3">TX5n</a></li> <li class="L3"><a href="products/177" class="nobottomline l3">TX4n</a></li> </ul>
</li> <li class="L2"> <a href="products/list?category_id=8" class="l2">Tn系列</a> <ul class="side3" style="display:none"> <li class="L3"><a href="products/171" class=" l3">T5n</a></li> <li class="L3"><a href="products/50" class=" l3">T4n</a></li> <li class="L3"><a href="products/172" class="nobottomline l3">T3n</a></li> </ul>
</li> <li class="L2"> <a href="products/list?category_id=9" class="l2">PC-1N系列</a> <ul class="side3" style="display:none"> <li class="L3"><a href="products/49" class=" l3">PC9501N</a></li> <li class="L3"><a href="products/48" class=" l3">PC6501N</a></li> <li class="L3"><a href="products/47" class=" l3">PC4801N</a></li> <li class="L3"><a href="products/46" class=" l3">PC3301N</a></li> <li class="L3"><a href="products/45" class="nobottomline l3">PC2001N</a></li> </ul>
</li> <li class="L2"> <a href="products/list?category_id=10" class="l2">XP系列</a> <ul class="side3" style="display:none"> <li class="L3"><a href="products/44" class=" l3">XP7000</a></li> <li class="L3"><a href="products/43" class=" l3">XP5000</a></li> <li class="L3"><a href="products/40" class=" l3">XP3500</a></li> <li class="L3"><a href="products/42" class=" l3">XP2500</a></li> <li class="L3"><a href="products/41" class="nobottomline l3">XP1000</a></li> </ul>
</li> <li class="L2"> <a href="products/list?category_id=11" class="l2">P-S系列</a> <ul class="side3" style="display:none"> <li class="L3"><a href="products/39" class=" l3">P7000S</a></li> <li class="L3"><a href="products/38" class=" l3">P5000S</a></li> <li class="L3"><a href="products/37" class=" l3">P3500S</a></li> <li class="L3"><a href="products/36" class="nobottomline l3">P2500S</a></li> </ul>
</li> <li class="L2"> <a href="products/list?category_id=47" class="l2">XH系列</a> <ul class="side3" style="display:none"> <li class="L3"><a href="products/174" class="nobottomline l3">XH200</a></li> </ul>
</li> <li class="L2"> <a href="products/list?category_id=12" class="l2">多通道功放</a> <ul class="side3" style="display:none"> <li class="L3"><a href="products/204" class=" l3">XMV 系列</a></li> <li class="L3"><a href="products/35" class=" l3">XM4180</a></li> <li class="L3"><a href="products/34" class=" l3">XM4080 </a></li> <li class="L3"><a href="products/33" class="nobottomline l3">IPA8200</a></li> </ul>
</li> <li class="L2"> <a href="products/list?category_id=48" class="l2">功放控制设备</a> <ul class="side3" style="display:none"> <li class="L3"><a href="products/175" class=" l3">ACD1</a></li> <li class="L3"><a href="products/154" class="nobottomline l3">ACU16-C</a></li> </ul>
</li> </ul>
</li> <li class="L1"> <a href="14" class="l1"><img src="data:images/yamaha_0828_36.jpg" width="765" height="123" /></a> <ul class="side2" style=""> <li class="L2"> <a href="products/list?category_id=15" class="l2">工程系列音箱</a> <ul class="side3" style="display:none"> <li class="L3"><a href="products/110" class=" l3">IF2112(M)</a></li> <li class="L3"><a href="products/109" class=" l3">IF2208</a></li> <li class="L3"><a href="products/108" class=" l3">IS1215</a></li> <li class="L3"><a href="products/107" class=" l3">IF3115</a></li> <li class="L3"><a href="products/106" class=" l3">IH2000</a></li> <li class="L3"><a href="products/105" class=" l3">IL1115</a></li> <li class="L3"><a href="products/104" class=" l3">IS1118</a></li> <li class="L3"><a href="products/103" class=" l3">IS1218</a></li> <li class="L3"><a href="products/102" class=" l3">IF2108,IF2108W</a></li> <li class="L3"><a href="products/100" class=" l3">IF2205,IF2205W</a></li> <li class="L3"><a href="products/98" class=" l3">IF2115(M)</a></li> <li class="L3"><a href="products/97" class=" l3">IF2112AS</a></li> <li class="L3"><a href="products/96" class="nobottomline l3">IF2115AS</a></li> </ul>
</li> <li class="L2"> <a href="products/list?category_id=16" class="l2">Club V音箱 C系列</a> <ul class="side3" style="display:none"> <li class="L3"><a href="products/95" class=" l3">C215V</a></li> <li class="L3"><a href="products/94" class=" l3">CM15V</a></li> <li class="L3"><a href="products/93" class=" l3">CW218V</a></li> <li class="L3"><a href="products/92" class=" l3">C115VA</a></li> <li class="L3"><a href="products/91" class=" l3">C112VA</a></li> <li class="L3"><a href="products/90" class=" l3">CW118V</a></li> <li class="L3"><a href="products/89" class=" l3">CW115V</a></li> <li class="L3"><a href="products/88" class=" l3">CM12V</a></li> <li class="L3"><a href="products/87" class=" l3">CM10V</a></li> <li class="L3"><a href="products/86" class=" l3">C115V</a></li> <li class="L3"><a href="products/85" class="nobottomline l3">C112V</a></li> </ul>
</li> <li class="L2"> <a href="products/list?category_id=17" class="l2">Club V音箱 S系列</a> <ul class="side3" style="display:none"> <li class="L3"><a href="products/84" class=" l3">S215V</a></li> <li class="L3"><a href="products/83" class=" l3">S115V</a></li> <li class="L3"><a href="products/82" class=" l3">S112V</a></li> <li class="L3"><a href="products/81" class=" l3">SM15V</a></li> <li class="L3"><a href="products/80" class=" l3">SM12V</a></li> <li class="L3"><a href="products/79" class=" l3">SM10V</a></li> <li class="L3"><a href="products/78" class=" l3">SW218V</a></li> <li class="L3"><a href="products/77" class=" l3">SW118V</a></li> <li class="L3"><a href="products/76" class="nobottomline l3">SW115V</a></li> </ul>
</li> <li class="L2"> <a href="products/list?category_id=18" class="l2">A系列音箱</a> <ul class="side3" style="display:none"> <li class="L3"><a href="products/75" class=" l3">A10</a></li> <li class="L3"><a href="products/74" class=" l3">A12</a></li> <li class="L3"><a href="products/73" class=" l3">A15</a></li> <li class="L3"><a href="products/72" class=" l3">A12M</a></li> <li class="L3"><a href="products/71" class="nobottomline l3">A15W</a></li> </ul>
</li> <li class="L2"> <a href="products/list?category_id=19" class="l2">R系列音箱</a> <ul class="side3" style="display:none"> <li class="L3"><a href="products/70" class=" l3">R215</a></li> <li class="L3"><a href="products/69" class=" l3">R115</a></li> <li class="L3"><a href="products/68" class=" l3">R112</a></li> <li class="L3"><a href="products/67" class=" l3">R15MC</a></li> <li class="L3"><a href="products/66" class=" l3">R12M</a></li> <li class="L3"><a href="products/65" class="nobottomline l3">R118W</a></li> </ul>
</li> <li class="L2"> <a href="products/list?category_id=21" class="l2">DSR系列有源音箱</a> <ul class="side3" style="display:none"> <li class="L3"><a href="products/57" class=" l3">DSR112</a></li> <li class="L3"><a href="products/56" class=" l3">DSR115</a></li> <li class="L3"><a href="products/55" class=" l3">DSR215</a></li> <li class="L3"><a href="products/54" class="nobottomline l3">DSR118W</a></li> </ul>
</li> <li class="L2"> <a href="products/list?category_id=53" class="l2">DXR/DXS系列有源音箱</a> <ul class="side3" style="display:none"> <li class="L3"><a href="products/193" class=" l3">DXR系列</a></li> <li class="L3"><a href="products/192" class="nobottomline l3">DXS系列</a></li> </ul>
</li> <li class="L2"> <a href="products/list?category_id=49" class="l2">MSR系列有源音箱</a> <ul class="side3" style="display:none"> <li class="L3"><a href="products/178" class=" l3">MSR400</a></li> <li class="L3"><a href="products/179" class=" l3">MSR250</a></li> <li class="L3"><a href="products/181" class="nobottomline l3">MSR800W</a></li> </ul>
</li> <li class="L2"> <a href="products/list?category_id=20" class="l2">有源监听音箱</a> <ul class="side3" style="display:none"> <li class="L3"><a href="products/62" class=" l3">MSP7 STUDIO</a></li> <li class="L3"><a href="products/63" class=" l3">MSP5 STUDIO</a></li> <li class="L3"><a href="products/64" class=" l3">MSP3</a></li> <li class="L3"><a href="products/61" class=" l3">SW10 STUDIO</a></li> <li class="L3"><a href="products/208" class=" l3">HS8</a></li> <li class="L3"><a href="products/207" class=" l3">HS7</a></li> <li class="L3"><a href="products/206" class=" l3">HS5</a></li> <li class="L3"><a href="products/209" class=" l3">HS8S</a></li> <li class="L3"><a href="products/58" class=" l3">HS80M</a></li> <li class="L3"><a href="products/59" class=" l3">HS50M</a></li> <li class="L3"><a href="products/60" class="nobottomline l3">HS10W</a></li> </ul>
</li> <li class="L2"> <span class="L2on">商用音箱系列</span> <ul class="side3" style=""> <li class="L3"><a href="products/202" class=" l3">VXC 系列(ART COLLECTION)</a></li> <li class="L3"><a href="products/201" class=" l3">VXS 系列(ART COLLECTION)</a></li> <li class="L3"><a href="products/168" class=" l3">VS6,VS6W(ART COLLECTION)</a></li> <li class="L3"><a href="products/169" class=" l3">VS4,VS4W(ART COLLECTION)</a></li> <li class="L3"><a href="products/53" class=" l3">NS-AW992</a></li> <li class="L3"><a href="products/52" class=" l3">S5</a></li> <li class="L3"><a href="products/182" class=" l3">S55</a></li> <li class="L3"><a href="products/183" class="nobottomline l3">S15</a></li> </ul>
</li> </ul>
</li> </ul>
</body>

jQuery折叠风琴的更多相关文章

  1. [jquery]折叠指定条件的表格

    最近在做财务报表时候,一些表格要做特定折叠效果 这里通过2个自定义属性来对表格之间的属性作关联 date-head和date-num,输出表格时候,可以按照这2个自定义属性给某些带父子层级关系的内容指 ...

  2. 【转】Jquery折叠效果

    转自:http://www.cnblogs.com/clc2008/archive/2011/10/25/2223254.html <!DOCTYPE html PUBLIC "-// ...

  3. jQuery --- 第四期 (jQuery动效)

    学习笔记 1.jQuery动画的淡入淡出 <!doctype html> <html> <head> <meta charset="utf-8&qu ...

  4. YII插件

    dropDownList: Yii中可以采用CHtml类来实现,也可以用CActiveForm来实现.一.用CHtml来实现.VIEW中实现: <?php echo CHtml::dropDow ...

  5. jQuery&HTML&CSS3实现垂直手风琴折叠菜单方法讲解

    在网页制作中我们常常需要折叠式的菜单,在折叠菜单中,手风琴特效的菜单是非常受欢迎,下面就讲解使用jQuery+HTML+CSS3实现垂直手风琴折叠菜单的方法. jQuery实现垂直手风琴折叠菜单示例代 ...

  6. jQuery网站顶部定时折叠广告

    效果体验:http://hovertree.com/texiao/jquery/4.htm HTML文件代码: <!DOCTYPE html> <html xmlns="h ...

  7. jQuery treetable【表格多重折叠树功能及拖放表格子元素重新排列】

    今天有个表格需求做到多重折叠子元素功能,仔细想了下实现原理, 1.在html中,把父子节点的关系写在自定义属性,但对于节点是否有孩子(hasChild),是否是最后一个节点(isLastOne),是否 ...

  8. jQuery文本段落展开和折叠效果

    <!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/h ...

  9. jQuery实现折叠下拉效果

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

随机推荐

  1. TREEVIEW节点拖拽

    http://files.cnblogs.com/xe2011/TreeView_Drag_and_Drop.rar       假设把A节点往B节点上拖拽 那么  A 为Node1,B为Node2 ...

  2. nanosleep纳秒级延迟

    //函数原型 int nanosleep(struct timespec *req, struct timespec *rem) //参数列表: // req:要求的睡眠时间 // rem:剩余的睡眠 ...

  3. systemtap [主设备号,次设备好,inode]监控文件

    SystemTap 是监控和跟踪运行中的linux 内核的操作的动态方法,SystemTap 应用:对管理员,SystemTap可用于监控系统性能,找出系统瓶颈,而对于开发者,可以查看他们的程序运行时 ...

  4. ARCGIS二维三维导航

    在使用代码前需要先安装arcgis10.0    或者10.1都可以    不过本人建议初学者安装10.0比较容易安装.. 安装方式和二维三维地图的加载网上都有,就不在此一一赘述了. 先从基本的功能开 ...

  5. Win10安卓模拟器Visual Studio Emulator for Android使用简介(转)

    Visual Studio Emulator for Android是微软官方发布的独立版本的安卓模拟器,这款软件可以让安卓应用开发者更加轻松的用Visual Studio编写Android应用,据说 ...

  6. Eclipse vs IDEA快捷键对比大全(win系统)

    花了几天时间熟悉IDEA的各种操作,将各种快捷键都试了一下,感觉很是不错! 以下为我整理了一下开发过程中经常用的一些Eclipse快捷键与IDEA的对比,方便像我一样使用Eclipse多年但想尝试些改 ...

  7. CI 笔记(1)

    1. 下载CI,官方网站,目前3.x版本已经更新,2.2.6版本为2.x版本的最后的一个版本.为了和视频教材一致,使用CI 2.x版本 2. 目录结构,从application里面的,controll ...

  8. acl操作记录

    官方文档内容: 1.CREATE_ACL Procedure创建ACL Note: This procedure is deprecated in Oracle Database 12c. While ...

  9. ASP.NET实现二级域名(多用户,多商店)

    本人所了解有两种方案,可能还有其的方式,希望大家多多讨论!  基本思路:  1. 域名支持泛解析,即是指:把A记录 *.域名.com 解析到服务器IP,服务器IIS中做绑定,绑定时主机头为空;  2. ...

  10. basicAnimation移动图形

    目的:采用CABasicAnimation  点击屏幕上的点来是实现图像的位置移动  并且位置能够不反弹 难点:1 通过动画的KeyPath找到layer的属性 2 通过NSValue将点包装成对象 ...