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 相关文章推荐
jQuery实现页面滚动时层智能浮动定位实例探讨
Mar 29 Javascript
jqTransform美化表单
Oct 10 Javascript
jquery悬浮提示框完整实例
Jan 13 Javascript
js 提取某()特殊字符串长度的实例
Dec 06 Javascript
10行原生JS实现文字无缝滚动(超简单)
Jan 02 Javascript
JS中利用FileReader实现上传图片前本地预览功能
Mar 02 Javascript
JS限制输入框输入的实现代码
Jul 02 Javascript
js打开word文档预览操作示例【不是下载】
May 23 Javascript
JS实现点击生成UUID的方法完整实例【基于jQuery】
Jun 12 jQuery
解决Layui当中的导航条动态添加后渲染失败的问题
Sep 25 Javascript
vue 微信扫码登录(自定义样式)
Jan 06 Javascript
vue 避免变量赋值后双向绑定的操作
Nov 07 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 __autoload函数(自动载入类文件)的使用方法
2012/02/04 PHP
浅析Apache中RewriteCond规则参数的详细介绍
2013/06/30 PHP
php中获取主机名、协议及IP地址的方法
2014/11/18 PHP
thinkphp的静态缓存用法分析
2014/11/29 PHP
PHP+Apache+Mysql环境搭建教程
2016/08/01 PHP
PHP中仿制 ecshop验证码实例
2017/01/06 PHP
php用wangeditor3实现图片上传功能
2019/08/22 PHP
使用EXT实现无刷新动态调用股票信息
2008/11/01 Javascript
jquery tools之tooltip
2009/07/25 Javascript
一道JS前端闭包面试题解析
2015/12/25 Javascript
星期几的不同脚本写法(推荐)
2016/06/01 Javascript
微信小程序 Image API实例详解
2016/09/30 Javascript
简单实现js选项卡切换效果
2017/02/09 Javascript
认识less和webstrom的less配置方法
2017/08/02 Javascript
JS实现简单表格排序操作示例
2017/10/07 Javascript
H5+C3+JS实现五子棋游戏(AI篇)
2020/05/28 Javascript
用smtplib和email封装python发送邮件模块类分享
2014/02/17 Python
Python的Bottle框架的一些使用技巧介绍
2015/04/08 Python
python出现&quot;IndentationError: unexpected indent&quot;错误解决办法
2017/10/15 Python
python实现动态创建类的方法分析
2019/06/25 Python
Python笔记之工厂模式
2019/11/20 Python
解决springboot yml配置 logging.level 报错问题
2020/02/21 Python
python 穷举指定长度的密码例子
2020/04/02 Python
pandas中的ExcelWriter和ExcelFile的实现方法
2020/04/24 Python
Pycharm新手使用教程(图文详解)
2020/09/17 Python
捷克领先的户外服装及配件市场零售商:ALPINE PRO
2018/01/09 全球购物
经济学人订阅:The Economist
2018/07/19 全球购物
运动会稿件100字
2014/02/21 职场文书
小学教学随笔感言
2014/02/26 职场文书
大型会议接待方案
2014/03/01 职场文书
《桥》教学反思
2014/04/09 职场文书
超市优秀员工事迹材料
2014/05/01 职场文书
餐厅周年庆活动方案
2014/08/25 职场文书
治庸问责工作总结
2015/08/11 职场文书
2016护理专业求职自荐书
2016/01/28 职场文书
员工升职自我评价
2019/03/26 职场文书