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 相关文章推荐
Prototype使用指南之dom.js
Jan 10 Javascript
javascript新手语法小结
Jun 15 Javascript
JavaScript实现继承的4种方法总结
Oct 16 Javascript
完美实现八种js焦点轮播图(下篇)
Apr 20 Javascript
新入门node.js必须要知道的概念(必看篇)
Aug 10 Javascript
基于Phantomjs生成PDF的实现方法
Nov 07 Javascript
微信小程序 选择器(时间,日期,地区)实例详解
Nov 16 Javascript
vue-cli 组件的导入与使用教程详解
Apr 11 Javascript
Vue 菜单栏点击切换单个class(高亮)的方法
Aug 22 Javascript
vuejs 制作背景淡入淡出切换动画的实例
Sep 01 Javascript
vue表单数据交互提交演示教程
Nov 13 Javascript
vue中实现高德定位功能
Dec 03 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中随机显示图片的函数代码
2011/06/23 PHP
PHP编程中的常见漏洞和代码实例
2014/08/06 PHP
PHP多维数组转一维数组的简单实现方法
2015/12/23 PHP
PHP单例模式与工厂模式详解
2017/08/29 PHP
PHP格式化显示时间date()函数代码
2018/10/03 PHP
PHP实现15位身份证号转18位的方法分析
2019/10/16 PHP
Javascript 判断 object 的特定类转载
2007/02/01 Javascript
JS 强制设为首页的代码
2009/01/31 Javascript
动态载入/删除/更新外部 JavaScript/Css 文件的代码
2010/07/03 Javascript
js 验证密码强弱的小例子
2013/03/21 Javascript
将文本输入框内容加入表中的js代码
2013/08/18 Javascript
带左右箭头图片轮播的JS代码
2013/12/18 Javascript
经过绑定元素时会多次触发mouseover和mouseout事件
2014/02/28 Javascript
JQuery实现左右滚动菜单特效
2015/09/28 Javascript
jQuery animate easing使用方法图文详解
2016/06/17 Javascript
JS数组搜索之折半搜索实现方法分析
2017/03/27 Javascript
解析Vue 2.5的Diff算法
2017/11/28 Javascript
vue mounted 调用两次的完美解决办法
2018/10/29 Javascript
node.js中express模块创建服务器和http模块客户端发请求
2019/03/06 Javascript
基于vue如何发布一个npm包的方法步骤
2019/05/15 Javascript
详解微信小程序支付流程与梳理
2019/07/16 Javascript
python基于隐马尔可夫模型实现中文拼音输入
2016/04/01 Python
Python实现完整的事务操作示例
2017/06/20 Python
Python遍历某目录下的所有文件夹与文件路径
2018/03/15 Python
Python3.5常见内置方法参数用法实例详解
2019/04/29 Python
详解python实现交叉验证法与留出法
2019/07/11 Python
解决tensorflow由于未初始化变量而导致的错误问题
2020/01/06 Python
毕业自我评价范文
2013/11/17 职场文书
建筑公司文秘岗位职责
2013/11/29 职场文书
医药代表个人的求职信分享
2013/12/08 职场文书
教师节促销活动方案
2014/02/14 职场文书
教师工作自我鉴定范文
2014/09/14 职场文书
检察院对照“四风”认真查找问题落实整改措施
2014/09/26 职场文书
金砖之国观后感
2015/06/11 职场文书
php远程请求CURL案例(爬虫、保存登录状态)
2021/04/01 PHP
CSS3 制作的悬停缩放特效
2021/04/13 HTML / CSS