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 学习 - 提高篇
Feb 02 Javascript
24款非常有用的 jQuery 插件分享
Apr 06 Javascript
javascript获取网页中指定节点的父节点、子节点的方法小结
Apr 24 Javascript
GRID拖拽行的实例代码
Jul 18 Javascript
javascript 处理null及null值示例
Jun 09 Javascript
详解javascript实现自定义事件
Jan 19 Javascript
jQuery实现的导航下拉菜单效果
Jul 04 Javascript
jquery移除了live()、die(),新版事件绑定on()、off()的方法
Oct 26 Javascript
BootStrap下的弹出框加载select2框架失败的解决方法
Aug 31 Javascript
JavaScript实现拖拽盒子效果
Feb 06 Javascript
深入详解JS函数的柯里化
Jun 09 Javascript
详解JVM系列之内存模型
Jun 10 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分页示例代码
2007/03/19 PHP
浅谈PHP中output_buffering
2015/07/13 PHP
PHP常用函数总结(180多个)
2016/12/25 PHP
Javascript 更新 JavaScript 数组的 uniq 方法
2008/01/23 Javascript
JS的replace方法介绍
2012/10/20 Javascript
如何判断元素是否为HTMLElement元素
2013/12/06 Javascript
通用javascript代码判断版本号是否在版本范围之间
2015/11/29 Javascript
javascript弹出带文字信息的提示框效果
2016/07/19 Javascript
jQuery实现拖动剪裁图片作为头像
2016/12/28 Javascript
Angular.js跨controller实现参数传递的两种方法
2017/02/20 Javascript
聊聊JS动画库 Velocity.js的使用
2018/03/13 Javascript
关于微信小程序bug记录与解决方法
2018/08/15 Javascript
详解vue-cli3 中跨域解决方案
2019/04/10 Javascript
微信小程序开发打开另一个小程序的实现方法
2020/05/17 Javascript
Vue中nprogress页面加载进度条的方法实现
2020/11/13 Javascript
[01:28]国服启动器接入蒸汽平台操作流程视频
2021/03/11 DOTA
Python实现简易Web爬虫详解
2018/01/03 Python
python关闭占用端口方式
2019/12/17 Python
Python flask框架如何显示图像到web页面
2020/06/03 Python
vscode+PyQt5安装详解步骤
2020/08/12 Python
Python文件操作及内置函数flush原理解析
2020/10/13 Python
美国最大网上鞋店:Zappos
2016/07/25 全球购物
Eastbay官网:美国最大的运动鞋网络零售商
2016/07/27 全球购物
运动鞋、足球鞋和慕尼黑球衣:Sport Münzinger
2019/08/26 全球购物
东方通信股份有限公司VC面试题
2014/08/27 面试题
SQL面试题
2013/12/09 面试题
P/Invoke是什么
2015/07/31 面试题
自荐信范文
2013/12/10 职场文书
企业演讲稿范文
2013/12/28 职场文书
婚纱店策划方案
2014/05/22 职场文书
公司承诺函范文
2015/01/21 职场文书
幼儿园小班个人总结
2015/02/12 职场文书
考研导师推荐信范文
2015/03/27 职场文书
假期读书倡议书3篇
2019/08/19 职场文书
解决golang 关于全局变量的坑
2021/05/06 Golang
「约定的梦幻岛」作画发布诺曼生日新绘
2022/03/21 日漫