jquery 无限级联菜单案例分享


Posted in Javascript onMarch 26, 2013

看到phpcms的地区级联菜单,感觉写的挺有意思,就说说大致步骤,省得忘了。

对于地区级联菜单的生成一般是在/data/cache_model/content_form.class.php文件的areaid()函数中。不过,这个只是一个cache至于什么地方生成还不没找到,所以暂时作为一个测试。(知道的同学告诉我哈!十分感谢)

在areaid()的$js中添加

function delChild(num) 
{ 
$('#load_$field select').each(function(i,obj){ 
if(obj.id >num) 
$('#'+obj.id).remove(); 
}) 
}

对应的,在/load.php中elseif($field == 'areaid' && $value)修改
$str = 
'<select id="'.$id.'" 
onchange="delChild('.$id.');$(\'#'.$value.'\').val(this.value);this.disabled=false;area_load(this.value);"><option 
value="1">'.$LANG['please_select'].'</option>';

就能去掉"选定地区后不能更改"的效果,并且当没有下级地名时不会删除多余的选择框。
传统的级联菜单呢,个人觉得传输数据相对较大,而且和数据库的关联似乎不好,所以就不贴代码了。

方法二:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script> 
<script type="text/javascript"> 
$(document).ready(function(){ 
$('.menu li').hover(function(){ 
$(this).children('ul').show(); 
$(this).focus().addClass('focusa') 
},function(){ 
$(this).children('ul').hide(); 
$(this).focus().removeClass('focusa'); 
}); 
}); 
</script> 
<style type="text/css"> 
ul{ list-style:none; margin:0; padding:0;} 
.menu { height:30px; line-height:30px; } 
.menu li { float:left; position:relative;} /*这一级是导航*/ 
.menu li a { display:block; height:30px; line-height:30px; padding:0 20px; } 
.menu li a:hover { color:#000; background:url(img/bg1.png); } 
.menu li a.more { background:url(img/there.png) no-repeat 130px center; } 
.menu li ul { position:absolute; float:left; width:150px; border:1px solid #000; display:none;} /*这是第二级菜单*/ 
.menu li ul a { width:110px; } 
.menu li ul a:hover { background:url(img/bg1.png);} 
.menu li ul ul{ top:0;left:150px;} /*从第三级菜单开始,所有的子级菜单都相对偏移*/ 
</style> 
<ul class="menu"> 
<li><a href="#">菜单一</a> 
<ul class="one"> 
<li><a href="#">菜单一</a></li> 
<li><a href="#">菜单二</a></li> 
<li><a href="#">菜单三</a></li> 
<li><a href="#">菜单四</a></li> 
<li><a href="#" class="more">菜单五</a> 
<ul class="two"> 
<li><a href="#">菜单一</a></li> 
<li><a href="#">菜单二</a></li> 
<li><a href="#">菜单三</a></li> 
<li><a href="#">菜单四</a></li> 
<li><a href="#" class="more">菜单五</a> 
<ul class="three"> 
<li><a href="#">菜单一</a></li> 
<li><a href="#">菜单二</a></li> 
<li><a href="#">菜单三</a></li> 
<li><a href="#">菜单四</a></li> 
<li><a href="#" class="more">菜单五</a> 
<ul class="four"> 
<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> 
</li> 
</ul> 
</li> 
</ul> 
</li> 
<li><a href="#">菜单二</a> 
<ul class="one"> 
<li><a href="#">菜单一</a></li> 
<li><a href="#">菜单二</a></li> 
<li><a href="#" class="more">菜单三</a> 
<ul class="two"> 
<li><a href="#">菜单一</a></li> 
<li><a href="#">菜单二</a></li> 
<li><a href="#" class="more">菜单三</a> 
<ul class="three"> 
<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><a href="#">菜单四</a></li> 
</ul> 
</li> 
</ul> 
</li> 
<li><a href="#">菜单三</a></li> 
<li><a href="#">菜单四</a></li> 
<li><a href="#">菜单五</a> 
<ul class="one"> 
<li><a href="#">菜单一</a></li> 
<li><a href="#">菜单二</a></li> 
<li><a href="#">菜单三</a></li> 
</ul> 
</li> 
</ul>
Javascript 相关文章推荐
Javascript中对象继承的实现小例
May 12 Javascript
PHP PDO操作总结
Nov 17 Javascript
js中键盘事件实例简析
Jan 10 Javascript
javascript中window.open在原来的窗口中打开新的窗口(不同名)
Nov 15 Javascript
JavaScript、jQuery与Ajax的关系
Jan 24 Javascript
基于javascript实现tab切换特效
Mar 29 Javascript
jQuery插件MovingBoxes实现左右滑动中间放大图片效果
Feb 28 Javascript
bootstrap table表格使用方法详解
Apr 26 Javascript
BootStrap自定义popover,点击区域隐藏功能的实现
Jan 23 Javascript
vue.js计算属性computed用法实例分析
Jul 06 Javascript
layDate日期控件使用方法详解
Nov 15 Javascript
小程序登录/注册页面设计的实现代码
May 24 Javascript
JSON辅助格式化处理方法
Mar 26 #Javascript
html+css+js实现xp window界面及有关功能
Mar 26 #Javascript
jquery图片放大镜功能的实例代码
Mar 26 #Javascript
EditPlus注册码生成器(js代码实现)
Mar 25 #Javascript
本地图片预览(支持IE6/IE7/IE8/Firefox3)经验总结
Mar 25 #Javascript
JS上传前预览图片实例
Mar 25 #Javascript
js实现杯子倒水问题自动求解程序
Mar 25 #Javascript
You might like
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装最快的解决办法
2010/08/01 PHP
php实现统计邮件大小的方法
2013/08/06 PHP
PHP 下载文件时自动添加bom头的方法实例
2014/01/10 PHP
PHP内核探索:变量存储与类型使用说明
2014/01/30 PHP
PHP实现过滤各种HTML标签
2015/05/17 PHP
php构造函数与析构函数
2016/04/23 PHP
thinkphp分页集成实例
2017/07/24 PHP
php写入文件不覆盖的实例讲解
2019/09/17 PHP
让iframe自适应高度(支持XHTML,支持FF)
2007/07/24 Javascript
javascript实现随时变化着的背景颜色
2015/04/02 Javascript
js实现同一页面多个不同运动效果的方法
2015/04/10 Javascript
JQuery radio(单选按钮)操作方法汇总
2015/04/15 Javascript
JS根据生日算年龄的方法
2015/05/05 Javascript
JavaScript中的Math.atan2()方法使用详解
2015/06/15 Javascript
JS实现的RGB网页颜色在线取色器完整实例
2016/12/21 Javascript
vue.js父组件使用外部对象的方法示例
2017/04/25 Javascript
xmlplus组件设计系列之网格(DataGrid)(10)
2017/05/05 Javascript
js限制输入框只能输入数字(onkeyup触发)
2018/09/28 Javascript
详解小程序设置缓存并且不覆盖原有数据
2019/04/15 Javascript
vue中如何实现后台管理系统的权限控制的方法步骤
2019/09/05 Javascript
[01:35]2018完美盛典章节片——共竞
2018/12/17 DOTA
跟老齐学Python之正规地说一句话
2014/09/28 Python
使用Python实现下载网易云音乐的高清MV
2015/03/16 Python
pytorch 把MNIST数据集转换成图片和txt的方法
2018/05/20 Python
对pandas中iloc,loc取数据差别及按条件取值的方法详解
2018/11/06 Python
Python中的Socket 与 ScoketServer 通信及遇到问题解决方法
2019/04/01 Python
django框架F&amp;Q 聚合与分组操作示例
2019/12/12 Python
python opencv 实现对图像边缘扩充
2020/01/19 Python
Python关键字及可变参数*args,**kw原理解析
2020/04/04 Python
POP文化和音乐灵感的时尚:Hot Topic
2019/06/19 全球购物
什么是java序列化,如何实现java序列化
2012/11/14 面试题
JAVA中运算符的分类及举例
2015/09/12 面试题
奠基仪式主持词
2014/03/20 职场文书
公司法人授权委托书范本
2014/09/12 职场文书
2019新员工心得体会
2019/06/25 职场文书
MySQL详细讲解变量variables的用法
2022/06/21 MySQL