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:"\u8BF7\u9009\u62E9\u5206\u7C7B",     //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: "\u6559\u80b2\u4e13\u533a",isLast: false},{pcid: 0,cid: 1,name: "\u6559\u80b2\u4e13\u533a",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

js仿百度文库文档上传页面的分类选择器_第二版,布布扣,bubuko.com

时间: 2024-12-11 12:02:57

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

vue.js 查看百度文库文档

<template> <div> <div id="reader"></div> </div> </template> <script> //doc.js文件地址 http://static.bcedocument.com/reader/v2/doc_reader_v2.js import doc from '../../libs/doc'; export default { data(){ retur

Java文档上传问题设计

近期公司让做一个文档上传的功能,功能描写叙述大概是这样子滴 书籍名称.书籍定价.书籍封面图片(须要上传).文档内容 (须要上传) .还有其它相关的描写叙述信息. 我的设计  表 A  包括以上字段 ,最初设计  文档上传.和内容保存在同一个页面. 这样后期遇到了一个问题可能用户仅仅是想 改动一下文档描写叙述的相关信息.可是改动的时候不得不 将整个Form表单编辑过后提交,并且那个上传的 俩文档是不会.在改动里面显示出来的 . 这种设计非常糟糕,后来 将这个东西分为两部分.一部分是文档相关定义的提

如何解决用jquery.uploadify.js进行多文档上传会修改document的title

在dwz框架中使用了jquery.uploadify.js进行多文档上传当打开窗口后会发现document的title被无意之中修改.进行代码调试也没有发现.对swfobject进行研究也没有发现修改title的情况. 只能采用一种方式禁止修改title var oldTitle = document.title; try { document.attachEvent('onpropertychange', function(){ if (document.title != oldTitle )

struts2文档上传报错

今天在写文档上传的时候出现了INFO: Unable to find 'struts.multipart.saveDir' property setting. Defaulting to javax.servlet.contex提示错误,后来查找了写资料发现是struts.xml中少了配置 修改办法为在struts2.xml中加入<constant name="struts.multipart.saveDir" value="/tmp"></con

多文档上传(upload multiple documents)功能不能使用怎么办?

问题描述: 在SharePoint 2010的文档库里选择documents标签,然后选择upload document下拉菜单,你会发现upload multiple documents那个按钮是灰色的,不能使用. 当你把鼠标放到那个按钮上悬停,会出现一条提示信息说: This control is currently disabled. You might not have the right permission level to use this, you might need to s

SharePoint 2013 文档上传的多种形式

SharePoint 2013 中的某些功能需要使用 ActiveX 控件.这会在不支持 ActiveX 的浏览器上产生限制.目前只有 32 位版本的 Internet Explorer 支持此功能.也就是说对于文档库资源管理器打开需要使用32位ie打开,如果你是64位机器,有可能安装有两个ie版本,分别是32位和64位.请使用32位版本打开.还要注意部分SharePoint功能只支持IE.具体请参考官方文档说明,请参考. https://technet.microsoft.com/zh-CN/

Excel文档上传

两个月没写东西了,今天拉出来操练操练.写一个Excel文档数据上传保存数据库. 一:准备工作 1.jar包:当时使用的Maven,自己就加入jar包了 <!-- jxl.jar操作Excel表格 --> <dependency> <groupId>net.sourceforge.jexcelapi</groupId> <artifactId>jxl</artifactId> <version>2.6.10</vers

百度文库文档下载

有用的链接: 文档下载:http://wenku.baiduvvv.com/……百度文库下载:http://www.hiwenku.com/ 商品历史价格查询:http://item.jdvvv.com/……商品历史价格查询:http://www.hisprice.cn/ 原文地址:https://www.cnblogs.com/Allen-rg/p/11419198.html

多文档上传文件

HttpFileCollection Files = HttpContext.Current.Request.Files;            for (int i = 0; i < Files.Count; i++)            {                HttpPostedFile PostedFile = Files[i];                if (PostedFile.ContentLength > 0)                {