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 相关文章推荐
javascript parseInt与Number函数的区别
Jan 21 Javascript
javascript中的继承实例代码
Apr 27 Javascript
解决jQuery动态获取手机屏幕高和宽的问题
May 07 Javascript
js图片处理示例代码
May 12 Javascript
jQuery 中国省市两级联动选择附图
May 14 Javascript
jQuery实现统计输入文字个数的方法
Mar 11 Javascript
JavaScript 事件入门知识
Apr 13 Javascript
D3.js实现散点图和气泡图的方法详解
Sep 21 Javascript
微信小程序 表单Form实例详解(附源码)
Dec 22 Javascript
vue 粒子特效的示例代码
Sep 19 Javascript
vue 父组件通过v-model接收子组件的值的代码
Oct 27 Javascript
vue项目实现设置根据路由高亮对应的菜单项操作
Aug 06 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
如何使用PHP Embed SAPI实现Opcodes查看器
2015/11/10 PHP
简单谈谈PHP面向对象之标识对象
2017/06/27 PHP
基于 Swoole 的微信扫码登录功能实现代码
2018/01/15 PHP
php高清晰度无损图片压缩功能的实现代码
2018/12/09 PHP
java script编程起步(第三课)
2007/01/10 Javascript
浅析js设置控件的readonly与enabled属性问题
2013/12/25 Javascript
jquery 构造函数在表单提交过程中修改数据
2015/05/25 Javascript
JS与jQ读取xml文件的方法
2015/12/08 Javascript
DIV随滚动条滚动而滚动的实现代码【推荐】
2016/04/12 Javascript
js+html5实现手机九宫格密码解锁功能
2018/07/30 Javascript
原生JS实现获取及修改CSS样式的方法
2018/09/04 Javascript
node.js监听文件变化的实现方法
2019/04/17 Javascript
JavaScript组合模式---引入案例分析
2020/05/23 Javascript
javascript实现下拉菜单效果
2021/02/09 Javascript
详解Django缓存处理中Vary头部的使用
2015/07/24 Python
学习python类方法与对象方法
2016/03/15 Python
python多线程方式执行多个bat代码
2016/06/07 Python
Python实现Pig Latin小游戏实例代码
2018/02/02 Python
PySide和PyQt加载ui文件的两种方法
2019/02/27 Python
Flask框架请求钩子与request请求对象用法实例分析
2019/11/07 Python
python pip安装包出现:Failed building wheel for xxx错误的解决
2019/12/25 Python
pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作)
2020/06/24 Python
matplotlib教程——强大的python作图工具库
2020/10/15 Python
Python第三方库安装缓慢的解决方法
2021/02/06 Python
如何配置、使用和清除Smarty缓存
2015/12/23 面试题
电子商务应届生求职信
2013/11/16 职场文书
优秀员工自荐书
2013/12/19 职场文书
教师岗位聘任书范文
2014/03/29 职场文书
买卖协议书范本
2014/04/21 职场文书
捐书活动总结
2014/05/04 职场文书
大型演出策划方案
2014/05/28 职场文书
成品仓库管理员岗位职责
2015/04/09 职场文书
初中数学教学随笔
2015/08/15 职场文书
2016年感恩节寄语
2015/12/07 职场文书
2019暑假学生安全口号
2019/06/27 职场文书
Python selenium的这三种等待方式一定要会!
2021/06/10 Python