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 相关文章推荐
ext checkboxgroup 回填数据解决
Aug 21 Javascript
JavaScript中的集合及效率
Jan 08 Javascript
初窥JQuery(二) 事件机制(1)
Nov 25 Javascript
在线一元二次方程计算器实例(方程计算器在线计算)
Dec 22 Javascript
jquery实现类似淘宝星星评分功能有截图
Sep 15 Javascript
jquery淡入淡出效果简单实例
Jan 14 Javascript
JavaScript模仿Pinterest实现图片预加载功能
Oct 25 Javascript
JavaScript学习总结之正则的元字符和一些简单的应用
Jun 30 Javascript
微信小程序scroll-x失效的完美解决方法
Jul 18 Javascript
vue v-for直接循环数字实例
Nov 07 Javascript
vue 实现setInterval 创建和销毁实例
Jul 21 Javascript
JavaScript中Object、map、weakmap的区别分析
Dec 15 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+javascript的日历控件
2009/11/19 PHP
Laravel学习教程之从入口到输出过程详解
2017/08/27 PHP
Thinkphp5框架简单实现钩子(Hook)行为的方法示例
2019/09/03 PHP
解析img图片没找到onerror事件 Stack overflow at line: 0
2013/12/23 Javascript
jquery处理json对象
2014/11/03 Javascript
jQuery中attr()方法用法实例
2015/01/05 Javascript
javascript实现图片上传前台页面
2015/08/18 Javascript
javascript获取系统当前时间的方法
2015/11/19 Javascript
老生常谈JavaScript 函数表达式
2016/09/01 Javascript
bootstrap常用组件之头部导航实现代码
2017/04/20 Javascript
微信小程序搜索组件wxSearch实例详解
2017/06/08 Javascript
vue项目实现github在线预览功能
2018/06/20 Javascript
对angular 监控数据模型变化的事件方法$watch详解
2018/10/09 Javascript
[01:03:03]VP vs Mineski 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
Python对小数进行除法运算的正确方法示例
2014/08/25 Python
python实现JAVA源代码从ANSI到UTF-8的批量转换方法
2015/08/10 Python
python 2.6.6升级到python 2.7.x版本的方法
2016/10/09 Python
Python WXPY实现微信监控报警功能的代码
2017/10/20 Python
Python+tkinter使用80行代码实现一个计算器实例
2018/01/16 Python
pycharm中显示CSS提示的知识点总结
2019/07/29 Python
Python3使用PySynth制作音乐的方法
2019/09/09 Python
python保存log日志,实现用log日志画图
2019/12/24 Python
Python GUI库PyQt5图形和特效样式QSS介绍
2020/02/25 Python
Python3中的tuple函数知识点讲解
2021/01/03 Python
CSS3中设置3D变形的transform-style属性详解
2016/05/23 HTML / CSS
教育科研先进个人材料
2014/01/26 职场文书
环保倡议书300字
2014/05/15 职场文书
食品安全处置方案
2014/06/14 职场文书
世博会口号
2014/06/20 职场文书
三分钟自我介绍演讲稿
2014/08/21 职场文书
公司证明怎么写
2014/09/22 职场文书
部门优秀员工推荐信
2015/03/24 职场文书
安全教育日主题班会
2015/08/13 职场文书
2016年教师政治思想表现评语
2015/12/02 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书
如何Tomcat中使用ipv6地址
2022/05/06 Servers