zTree插件之多选下拉菜单实例代码


Posted in Javascript onNovember 06, 2013

zTree插件之多选下拉菜单实例代码
css和js

<!--ztree树结构-->
<link rel="stylesheet" type="text/css" href="assets/ztree/css/zTreeStyle.css">
<link rel="stylesheet" type="text/css" href="assets/ztree/css/zTreeIcons.css">
<script src="assets/js/jquery.js"></script>
<!--ztree树-->
<script src="assets/ztree/js/jquery.ztree-2.6.js"></script>

html
<div class="input-append">
    <input class="input-medium" id="citySel" readonly type="text" value="">
    <a id="menuBtn" class="btn" type="button"><i class="icon-search"></i></a>
</div>
<div id="DropdownMenuBackground" style="display:none; position:absolute;z-index:999;height:250px; min-width:163px; background-color:white;border:1px solid;">
    <div style="height:220px; min-width:163px; background-color:white;border:1px solid;border-bottom:0px;overflow-y:auto;overflow-x:auto;">
        <ul id="dropdownMenu" class="tree"></ul>    
    </div>
    <div style="height:26px;border:1px #D4D4D4 solid;box-shadow:0 -1px 10px rgba(0,0,0,0.1);background-color:#FAFAFA;background-image:-webkit-linear-gradient(top,#FFF,#F2F2F2);background-repeat: repeat-x;">
        <div align="center"><a href="javascript:void(0)" onclick="enter();hideMenu();" id="enter" class="btn btn-mini btn-inverse" style="margin-top:3px;">确定</a></div>
    </div>
</div>

自定义的js代码
<script type="text/javascript">
    var zTree1;
    var setting = {
        checkable:true,
        checkType : { "Y": "s", "N": "s" },
        isSimpleData: true,
        treeNodeKey: "id",
        treeNodeParentKey: "pId",
        fontCss: setFont,
        callback: {
            beforeClick: zTreeOnBeforeClick,
        }            
    };
    var zNodes = [
        {id:1, pId:0, name:"北京"},
        {id:2, pId:0, name:"天津"},
        {id:3, pId:0, name:"上海"},
        {id:6, pId:0, name:"重庆"},
        {id:4, pId:0, name:"河北省", open:false},
        {id:41, pId:4, name:"石家庄"},
        {id:42, pId:4, name:"保定"},
        {id:43, pId:4, name:"邯郸"},
        {id:44, pId:4, name:"承德"},
        {id:5, pId:0, name:"广东省", open:false},
        {id:51, pId:5, name:"广州"},
        {id:52, pId:5, name:"深圳"},
        {id:53, pId:5, name:"东莞"},
        {id:54, pId:5, name:"佛山"},
        {id:6, pId:0, name:"福建省", open:false},
        {id:61, pId:6, name:"福州"},
        {id:62, pId:6, name:"厦门"},
        {id:63, pId:6, name:"泉州"},
        {id:64, pId:6, name:"三明"}
    ];
    
    function setFont(treeId, treeNode) {
        if (treeNode && treeNode.isParent) {
            return {color: "blue"};
        } else {
            return null;
        }
    }
    function showMenu(){
        var cityObj = $("#citySel");
        var cityOffset = $("#citySel").offset();
        $("#DropdownMenuBackground").css({left:cityOffset.left+"px",top:cityOffset.top+cityObj.outerHeight()+"px"}).slideDown("fast");    
    }    
    function reloadTree(){
        hideMenu();
        zTree1 = $("#dropdownMenu").zTree(setting, zNodes);
    }
    function hideMenu() {
        $("#DropdownMenuBackground").slideUp("fast");
    }
    function zTreeOnBeforeClick(treeId, treeNode) {
        return false;
    }
    function enter(){
        var str = "";
        var nodes = zTree1.getCheckedNodes();
        var i = 0;
        do{
            str = str+nodes[i].name+",";
            if(nodes[i].isParent&&nodes[i].checked){
                i = i+nodes[i].nodes.length;
            }
            else{
                i++;
            }
        }while(i<nodes.length)
        str = str.slice(0,-1);
        $("#citySel").val(str);
    }
    $(document).ready(function(e) {
        reloadTree();
        $("#menuBtn").bind("click",
            function(){
                if($("#DropdownMenuBackground").css("display") == "none"){
                    showMenu();
                }
                else{
                    hideMenu();
                }
            }
        );
        $("body").bind("mousedown", 
            function(event){
                if (!(event.target.id == "DropdownMenuBackground" || $(event.target).parents("#DropdownMenuBackground").length>0)) {
                    hideMenu();
                }
            });
    });
</script>
Javascript 相关文章推荐
浅析onsubmit校验表单时利用ajax的return false无效问题
Jul 10 Javascript
Javascript执行效率全面总结
Nov 04 Javascript
JS 对象(Object)和字符串(String)互转方法
May 20 Javascript
AngularJS 的$timeout服务示例代码
Sep 21 Javascript
JS异步函数队列功能实例分析
Nov 28 Javascript
详解angular2如何手动点击特定元素上的点击事件
Oct 16 Javascript
对Layer弹窗使用及返回数据接收的实例详解
Sep 26 Javascript
基于node+websocket+html实现腾讯课堂聊天室聊天功能
Mar 04 Javascript
react 不用插件实现数字滚动的效果示例
Apr 14 Javascript
JavaScript中ES6规范中let和const的用法和区别
Aug 06 Javascript
vue 导航锚点_点击平滑滚动,导航栏对应变化详解
Aug 10 Javascript
利用js canvas实现五子棋游戏
Oct 11 Javascript
Jquery ajax执行顺序 返回自定义错误信息(实例讲解)
Nov 06 #Javascript
Js参数值中含有单引号或双引号问题的解决方法
Nov 06 #Javascript
浅析Js中的单引号与双引号问题
Nov 06 #Javascript
表单元素与非表单元素刷新区别详细解析
Nov 06 #Javascript
js onclick事件传参讲解
Nov 06 #Javascript
jquery validation验证身份证号,护照,电话号码,email(实例代码)
Nov 06 #Javascript
css样式标签和js语法属性区别
Nov 06 #Javascript
You might like
西德产收音机
2021/03/01 无线电
php的一个简单加密解密代码
2014/01/14 PHP
在win7中搭建Linux+PHP 开发环境
2014/10/08 PHP
使用php实现从身份证中提取生日
2016/05/09 PHP
PHP中PDO连接数据库中各种DNS设置方法小结
2016/05/13 PHP
如何在PHP中使用数组
2020/06/09 PHP
javascript中的location用法简单介绍
2007/03/07 Javascript
JQuery验证工具类搜集整理
2013/01/16 Javascript
jquery实现div阴影效果示例代码
2013/09/16 Javascript
JS控制弹出新页面窗口位置和大小的方法
2015/03/02 Javascript
jQuery简单实现点击文本框复制内容到剪贴板上的方法
2016/08/01 Javascript
ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)
2016/09/06 Javascript
清除js缓存的多种方法总结
2016/12/09 Javascript
AngularJS报错$apply already in progress的解决方法分析
2017/01/30 Javascript
php输出全部gb2312编码内的汉字方法
2017/03/04 Javascript
JavaScript之DOM插入更新删除_动力节点Java学院整理
2017/07/03 Javascript
webpack教程之webpack.config.js配置文件
2017/07/05 Javascript
React Navigation 使用中遇到的问题小结
2018/05/08 Javascript
JS原型对象操作实例分析
2020/06/06 Javascript
JavaScript 绘制饼图的示例
2021/02/19 Javascript
python创建临时文件夹的方法
2015/07/06 Python
在Django中使用Sitemap的方法讲解
2015/07/22 Python
python实现远程通过网络邮件控制计算机重启或关机
2018/02/22 Python
利用python如何处理nc数据详解
2018/05/23 Python
python高阶爬虫实战分析
2018/07/29 Python
python学习——内置函数、数据结构、标准库的技巧(推荐)
2019/04/18 Python
Ubuntu下Anaconda和Pycharm配置方法详解
2019/06/14 Python
vscode 配置 python3开发环境的方法
2019/09/19 Python
selenium+Chrome滑动验证码破解二(某某网站)
2019/12/17 Python
python错误调试及单元文档测试过程解析
2019/12/19 Python
Django返回HTML文件的实现方法
2020/09/17 Python
酒店中秋节促销方案
2014/01/30 职场文书
安全生产知识竞赛活动总结
2014/07/07 职场文书
NGINX 权限控制文件预览和下载的实现原理
2022/01/18 Servers
电脑只能进入安全模式无法正常启动的解决办法
2022/04/08 数码科技
阿里云k8s服务升级时502错误 springboot项目应用
2022/04/09 Servers