• js仿百度文库文档上传页面的分类选择器_第二版


    仿百度文库文档上传页面的多级联动分类选择器第二版,支持在一个页面同一时候使用多个分类选择器。

    此版本号把HTML,CSS,以及图片都封装到“category.js”中。解决因文件路径找不到样式及图片的问题。

    源代码下载地址:http://download.csdn.net/detail/testcs_dn/7290577

    初始状态,一个页面使用两个,能够初始化之前选中的分类:


    选择状态:



    当选中一个分类后,会触发“onChange”事件,如上图中的“您选择的分类编号为:xxx 隐藏输入域的内容为:xxx”。就是通过onChange”事件输出的。

    页面调用代码及说明:

    <!DOCTYPE html>
    <html>
    <head>
        <title>category</title>
        <script type="text/javascript" src="jquery-1.10.2.min.js"></script>
    <script type="text/javascript" src="category.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            //创建一个新的分类选择器。支持一个页面中使用多个分类选择器
            //可选择配置信息,默认值。说明:
            //sourceData:{ list:[] },                           //array:分类数据源。格式參考:data/categorySourceData.js
            //textDefault:"u8BF7u9009u62E9u5206u7C7B",     //string:没有选择分类时的提示文字
            //onChange:null,                                    //event:当用户选中最后一级节点时触发
            //onSelect:null,                                    //event:当用户单击一个分类时触发。此事件在onChange之前触发
    		//hidField											//string:隐藏值域的ID,能够自己指定。不指定的话实际的ID=默认ID+分类实例索引
    															//onChange事件触发后,会将当前选中的分类赋值给此域。格式:1,17,14
            var category1 = $("#divCate1").category({ hidField: "hidField0", onSelect: function () {
                this.setCategoryName();
            },
                onChange: function (cid, level, text) {
                    $("#divResult1").html("您选择的分类编号为:" + this.getCategoryCid() + "<br />隐藏输入域的内容为:" + $("#hidField0").val());
                }
            });
    
            //能够通过设置selectItems属性。设定初始选项
            category1.selectItems = [{ cid: 1 }, { cid: 11}];
    
            //重写获取分类的方法,能够在此方法中訪问后台页面,从数据库获取分类数据
            //cid:分类编号
            //level:分类级别
            //返回值格式:{list: [{pcid: 0,cid: 1,name: "u6559u80b2u4e13u533a",isLast: false},{pcid: 0,cid: 1,name: "u6559u80b2u4e13u533a",isLast:true}]}
            //节点属性说明:
            //pcid:父级分类编号,眼下没实用到
            //cid:分类编号
            //name:分类名称
            //isLast:是否为最后一级分类。须要依据此属性确定显示样式及响应逻辑
            category1.getCategory = function (cid, level) {
                var cate = null;
                $.ajax({
                    type: "GET",
                    async: false, //这里必须使用同步方式
                    url: "data/categorySourceData.htm",
                    data: "T=" + Math.random(),
                    success: function (data) {
                        var sourceData = eval("(" + data + ")");
                        if (typeof cid == undefined || cid == null) {
                            cate = sourceData; //注意:这里直接return sourceData是不行的!
                            return cate;
                        }
                        if (sourceData.list) {
                            for (var i = 0; i < sourceData.list.length; i++) {
                                if (sourceData.list[i].cid == cid) {
                                    cate = sourceData.list[i];
                                    break;
                                }
                            }
                            if (cate == null) {
                                for (var i = 0; i < sourceData.list.length; i++) {
                                    cate = category1._getCategory(sourceData.list[i], cid);
                                    if (cate != null) {
                                        break;
                                    }
                                }
                            }
                        }
                    },
                    error: function (data) {
                        alert(data);
                    }
                });
                return cate;
            };
    
            //设置完毕后通过load方法载入
            category1.load();
    
    
            /////////======================================================================================
            var category2 = $("#divCate2").category({ onSelect: function (cid, level, name) {
                this.setCategoryName();
            },
                onChange: function (cid, level, text) {
                    $("#divResult2").html("您选择的分类编号为:" + this.getCategoryCid() + "<br />隐藏输入域的内容为:" + $("#" + this.config.hidField).val());
                }
            });
            category2.selectItems = [{ cid: 4 }, { cid: 73 }, { cid: 193}];
            category2.getCategory = function (cid, level) {
                var cate = null;
                $.ajax({
                    type: "GET",
                    async: false,
                    url: "data/categorySourceData.htm",
                    data: "T=" + Math.random(),
                    success: function (data) {
                        var sourceData = eval("(" + data + ")");
                        if (typeof cid == undefined || cid == null) {
                            cate = sourceData; //注意:这里直接return sourceData是不行的!
                            return cate;
                        }
                        if (sourceData.list) {
                            for (var i = 0; i < sourceData.list.length; i++) {
                                if (sourceData.list[i].cid == cid) {
                                    cate = sourceData.list[i];
                                    break;
                                }
                            }
                            if (cate == null) {
                                for (var i = 0; i < sourceData.list.length; i++) {
                                    cate = category2._getCategory(sourceData.list[i], cid);
                                    if (cate != null) {
                                        break;
                                    }
                                }
                            }
                        }
                    },
                    error: function (data) {
                        alert(data);
                    }
                });
                return cate;
            };
    
            //设置完毕后通过load方法载入
            category2.load();
    
        });
    </script>
    </head>
    
    <body>
    <!-- 分类选择代码開始 -->
    <!-- 为防止样式被覆盖,这里所有使用行内样式 -->
        <div id="divCate1">
            
        </div>
    <!-- 分类选择代码结束 -->
    
        <br />
        <br />
        <br />
        <br />
        <div id="divResult1"></div>
        <br />
        <br />
        <br />
        <br />
        <div id="divCate2"></div>
        <br />
        <br />
        <br />
        <br />
        <div id="divResult2"></div>
    </body>
    </html>
    
    源代码下载地址:http://download.csdn.net/detail/testcs_dn/7290577

  • 相关阅读:
    Codeforces Round #425 (Div. 2) Problem A Sasha and Sticks (Codeforces 832A)
    bzoj 2301 Problem b
    bzoj 1101 [POI2007]Zap
    bzoj 2005 能量采集
    bzoj 2527 Meteors
    bzoj 2724 [Violet 6]蒲公英
    回顾树状数组
    bzoj 3237 连通图
    bzoj 2733 永无乡
    Codeforces 817C Really Big Numbers
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/5219324.html
Copyright © 2020-2023  润新知