js模拟select下拉菜单控件的代码


Posted in Javascript onMay 08, 2013
<!DOCTYPE html>
 <html>
 <head>
 <script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
 <meta charset=utf-8 />
 <title>js模拟select</title>
 </head>
    <style>
   *{ margin:0; padding:0;}
   li{ list-style:none;}
   body{ font:12px "宋体"; color:#666;}
   .select_down{ margin:100px auto; position:relative; width:600px; min-height:200px; height:auto!important; height:200px; border:1px solid #ccc; padding:20px; border-radius: 8px}
   .select_down dt{float:left;width:134px;position:relative;margin-right:5px;display:inline;}
   .select_down h3{color: #919191; font-size:12px;font-weight: normal;border:1px solid #e5e5e5;height:18px;background:#fbfbfb;line-height: 18px;text-indent:8px;}
   .select_down ul{width: 132px;border: 1px solid #e5e5e5;background:#fbfbfb;position: absolute;top: 18px;left: 0;
 z-index: 1;text-indent:8px;display:none;}
 .select_down ul li{height:22px;line-height: 22px;cursor:pointer;}
 .select_down ul li.hover{background:#f2f2f2;}
  .select_down dt a{background:url('https://3water.com/hxh-hua/478335/o_select.jpg') no-repeat;position:absolute;width:18px;height:18px;top:1px;right:1px; }
   </style>
 <body>
   <div class="select_down" id="sel">
           <dl>
             <dt>
                 <h3>select选择</h3>
                 <a href="javascript:;"></a>
                 <ul>
                     <li>jq的select模拟1</li>
                     <li>jq的select模拟2</li>
                     <li>jq的select模拟3</li>
                 </ul>
             </dt>
             <dt>
                 <h3>select选择2</h3>
                 <a href="javascript:;"></a>
                 <ul>
                     <li>jq的select模拟11</li>
                     <li>jq的select模拟22</li>
                     <li>jq的select模拟31</li>
                 </ul>
             </dt>         </dl>
 </div>
   <script>
     window.onload=function(){
     var oflink = document.getElementById('sel');
     var aDt = oflink.getElementsByTagName('dt');
     var aUl = oflink.getElementsByTagName('ul');
     var aH3= oflink.getElementsByTagName('h3');
     for(var i=0;i<aDt.length;i++){
         aDt[i].index = i;
         aDt[i].onclick = function(ev){
             var ev = ev || window.event;
             var This = this;
             for(var i=0;i<aUl.length;i++){
                 aUl[i].style.display = 'none';
             }
             aUl[this.index].style.display = 'block';
             document.onclick = function(){
                 aUl[This.index].style.display = 'none';
             };
             ev.cancelBubble = true;
         };
     }
     for(var i=0;i<aUl.length;i++){
         aUl[i].index = i;
         (function(ul){
             var iLi = ul.getElementsByTagName('li');
             for(var i=0;i<iLi.length;i++){
                 iLi[i].onmouseover = function(){
                     this.className = 'hover';
                 };
                 iLi[i].onmouseout = function(){
                     this.className = '';
                 };
                 iLi[i].onclick = function(ev){
                     var ev = ev || window.event;
                     aH3[this.parentNode.index].innerHTML = this.innerHTML;
                     ev.cancelBubble = true;
                     this.parentNode.style.display = 'none';
                 };
             }
         })(aUl[i]);
     }
 }
   </script>
 </body>
 </html>
Javascript 相关文章推荐
JS小框架 fly javascript framework
Nov 26 Javascript
js为鼠标添加右击事件防止默认的右击菜单弹出
Jul 29 Javascript
javascript中call和apply的用法示例分析
Apr 02 Javascript
Jsonp 关键字详解及json和jsonp的区别,ajax和jsonp的区别
Dec 30 Javascript
JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法
Apr 18 Javascript
解析jQueryEasyUI的使用
Nov 22 Javascript
AngularJS中的promise用法分析
May 19 Javascript
用vue构建多页面应用的示例代码
Sep 20 Javascript
layui弹出框Tab选项卡的示例代码
Sep 04 Javascript
Vue-cli打包后如何本地查看的操作
Sep 02 Javascript
原生JS实现拖拽功能
Dec 16 Javascript
vue 使用class创建和清除水印的示例代码
Dec 25 Vue.js
js工具方法弹出蒙版
May 08 #Javascript
基于JavaScript 声明全局变量的三种方式详解
May 07 #Javascript
你必须知道的JavaScript 变量命名规则详解
May 07 #Javascript
你必须知道的JavaScript 中字符串连接的性能的一些问题
May 07 #Javascript
基于JavaScript实现继承机制之构造函数方法对象冒充的使用详解
May 07 #Javascript
基于JavaScript实现继承机制之调用call()与apply()的方法详解
May 07 #Javascript
JS中的substring和substr函数的区别说明
May 07 #Javascript
You might like
搜索引擎技术核心揭密
2006/10/09 PHP
php smarty模版引擎中的缓存应用
2009/12/02 PHP
php创建sprite
2014/02/11 PHP
PHP答题类应用接口实例
2015/02/09 PHP
Django中的cookie与session操作实例代码
2017/08/17 PHP
utf8的编码算法 转载
2006/12/27 Javascript
javascript十个最常用的自定义函数(中文版)
2009/09/07 Javascript
jQuery getJSON 处理json数据的代码
2010/07/26 Javascript
对javascript的一点点认识总结《javascript高级程序设计》读书笔记
2011/11/30 Javascript
JS代码判断IE6,IE7,IE8,IE9的函数代码
2013/08/02 Javascript
完美解决AJAX跨域问题
2013/11/01 Javascript
JS判断不能为空实例代码
2013/11/26 Javascript
JS实现页面超时后自动跳转到登陆页面
2015/01/19 Javascript
javascript实现详细时间提醒信息效果的方法
2015/03/11 Javascript
JavaScript让网页出现渐隐渐显背景颜色的方法
2015/04/21 Javascript
JS实现仿雅虎首页快捷登录入口及导航模块效果
2015/09/19 Javascript
Jquery中巧用Ajax的beforeSend方法
2016/01/20 Javascript
Angularjs通过指令监听ng-repeat渲染完成后执行脚本的方法
2016/12/31 Javascript
详解Vue2.x-directive的学习笔记
2017/07/17 Javascript
Koa2 之文件上传下载的示例代码
2018/03/29 Javascript
浅析前端路由简介以及vue-router实现原理
2018/06/01 Javascript
JavaScript简单实现动态改变HTML内容的方法示例
2018/12/25 Javascript
Python操作sqlite3快速、安全插入数据(防注入)的实例
2014/04/26 Python
python清除字符串里非字母字符的方法
2015/07/02 Python
基于Django contrib Comments 评论模块(详解)
2017/12/08 Python
浅谈python3发送post请求参数为空的情况
2018/12/28 Python
python 实现返回一个列表中出现次数最多的元素方法
2019/06/11 Python
pytorch实现CNN卷积神经网络
2020/02/19 Python
Python hashlib和hmac模块使用方法解析
2020/12/08 Python
CSS3中伪元素::before和::after的用法示例
2017/09/18 HTML / CSS
乡镇总工会学雷锋活动总结
2014/03/01 职场文书
商铺租房协议书范本
2014/12/04 职场文书
结婚保证书(卖身契)
2015/02/26 职场文书
vue实现简单数据双向绑定
2021/04/28 Vue.js
OpenCV-Python实现轮廓拟合
2021/06/08 Python
微软发布Windows 11今年最大更新22H2(附 ISO 镜像官方下载)
2022/09/23 数码科技