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 相关文章推荐
js鼠标滑轮滚动事件绑定的简单实例(兼容主流浏览器)
Jan 14 Javascript
javascript实现倒计时N秒后网页自动跳转代码
Dec 11 Javascript
jquery实现键盘左右翻页特效
Apr 30 Javascript
4种JavaScript实现简单tab选项卡切换的方法
Jan 06 Javascript
jQuery+css3实现转动的正方形效果(附demo源码下载)
Jan 27 Javascript
基于angular中的重要指令详解($eval,$parse和$compile)
Oct 21 Javascript
基于匀速运动的实例讲解(侧边栏,淡入淡出)
Oct 17 Javascript
十分钟带你快速了解React16新特性
Nov 10 Javascript
vue脚手架中配置Sass的方法
Jan 04 Javascript
Vue路由之JWT身份认证的实现方法
Aug 26 Javascript
原生js实现针对Dom节点的CRUD操作示例
Aug 26 Javascript
Webpack设置环境变量的一些误区详解
Dec 19 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设计模式之迭代器模式的深入解析
2013/06/13 PHP
php判断数组元素中是否存在某个字符串的方法
2014/06/14 PHP
firefo xml 读写实现js代码
2009/06/11 Javascript
jquery ajax 检测用户注册时用户名是否存在
2009/11/03 Javascript
javascript中的关于类型转换的性能优化
2010/12/14 Javascript
Jquery实现自定义tooltip示例代码
2014/02/12 Javascript
jQuery实现返回顶部效果的方法
2015/05/29 Javascript
使用基于Node.js的构建工具Grunt来发布ASP.NET MVC项目
2016/02/15 Javascript
javascript实现一个简单的弹出窗
2016/02/22 Javascript
JS事件添加和移出的兼容写法示例
2016/06/20 Javascript
ionic3实战教程之随机布局瀑布流的实现方法
2017/12/28 Javascript
Vue中的slot使用插槽分发内容的方法
2018/03/01 Javascript
jQuery插件实现弹性运动完整示例
2018/07/07 jQuery
animate.css在vue项目中的使用教程
2018/08/05 Javascript
解决使用bootstrap的dropdown部件时报错:error:Bootstrap dropdown require Popper.js问题
2018/08/30 Javascript
函数式编程入门实践(一)
2019/04/20 Javascript
JavaScript oncopy事件用法实例解析
2020/05/13 Javascript
Taro小程序自定义顶部导航栏功能的实现
2020/12/17 Javascript
[01:18]PWL开团时刻DAY4——圣剑与抢盾
2020/11/03 DOTA
Python小游戏之300行代码实现俄罗斯方块
2019/01/04 Python
在Python 不同级目录之间模块的调用方法
2019/01/19 Python
python3转换code128条形码的方法
2019/04/17 Python
详解【python】str与json类型转换
2019/04/29 Python
python 写一个文件分发小程序
2020/12/05 Python
css3 条纹化和透明化表格Firefox下测试成功
2014/04/15 HTML / CSS
日本最新流行服饰网购:Nissen
2016/07/24 全球购物
小学新学期寄语
2014/04/02 职场文书
建设投标担保书
2014/05/13 职场文书
市场推广策划方案
2014/06/02 职场文书
新文化运动的口号
2014/06/21 职场文书
党校学习心得体会范文
2014/09/09 职场文书
领导班子党的群众路线教育实践活动对照检查材料
2014/09/25 职场文书
软件研发工程师岗位职责
2014/09/30 职场文书
班干部竞选演讲稿(精选5篇)
2019/09/24 职场文书
python 远程执行命令的详细代码
2022/02/15 Python
vue实现登陆页面开发实践
2022/05/30 Vue.js