亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? treeview-debug.js

?? 目錄樹,在腳本中可以直接調用后臺java代碼,動態加載數據至頁面顯示.
?? JS
?? 第 1 頁 / 共 5 頁
字號:
/*Copyright (c) 2007, Yahoo! Inc. All rights reserved.Code licensed under the BSD License:http://developer.yahoo.net/yui/license.txtversion: 2.3.0*//** * The treeview widget is a generic tree building tool. * @module treeview * @title TreeView Widget * @requires yahoo, event * @optional animation * @namespace YAHOO.widget *//** * Contains the tree view state data and the root node. * * @class TreeView * @uses YAHOO.util.EventProvider * @constructor * @param {string|HTMLElement} id The id of the element, or the element * itself that the tree will be inserted into. */YAHOO.widget.TreeView = function(id) {    if (id) { this.init(id); }};YAHOO.widget.TreeView.prototype = {    /**     * The id of tree container element     * @property id     * @type String     */    id: null,    /**     * The host element for this tree     * @property _el     * @private     */    _el: null,     /**     * Flat collection of all nodes in this tree.  This is a sparse     * array, so the length property can't be relied upon for a     * node count for the tree.     * @property _nodes     * @type Node[]     * @private     */    _nodes: null,    /**     * We lock the tree control while waiting for the dynamic loader to return     * @property locked     * @type boolean     */    locked: false,    /**     * The animation to use for expanding children, if any     * @property _expandAnim     * @type string     * @private     */    _expandAnim: null,    /**     * The animation to use for collapsing children, if any     * @property _collapseAnim     * @type string     * @private     */    _collapseAnim: null,    /**     * The current number of animations that are executing     * @property _animCount     * @type int     * @private     */    _animCount: 0,    /**     * The maximum number of animations to run at one time.     * @property maxAnim     * @type int     */    maxAnim: 2,    /**     * Sets up the animation for expanding children     * @method setExpandAnim     * @param {string} type the type of animation (acceptable values defined      * in YAHOO.widget.TVAnim)     */    setExpandAnim: function(type) {        if (YAHOO.widget.TVAnim.isValid(type)) {            this._expandAnim = type;        }    },    /**     * Sets up the animation for collapsing children     * @method setCollapseAnim     * @param {string} the type of animation (acceptable values defined in      * YAHOO.widget.TVAnim)     */    setCollapseAnim: function(type) {        if (YAHOO.widget.TVAnim.isValid(type)) {            this._collapseAnim = type;        }    },    /**     * Perform the expand animation if configured, or just show the     * element if not configured or too many animations are in progress     * @method animateExpand     * @param el {HTMLElement} the element to animate     * @param node {YAHOO.util.Node} the node that was expanded     * @return {boolean} true if animation could be invoked, false otherwise     */    animateExpand: function(el, node) {        this.logger.log("animating expand");        if (this._expandAnim && this._animCount < this.maxAnim) {            // this.locked = true;            var tree = this;            var a = YAHOO.widget.TVAnim.getAnim(this._expandAnim, el,                             function() { tree.expandComplete(node); });            if (a) {                 ++this._animCount;                this.fireEvent("animStart", {                        "node": node,                         "type": "expand"                    });                a.animate();            }            return true;        }        return false;    },    /**     * Perform the collapse animation if configured, or just show the     * element if not configured or too many animations are in progress     * @method animateCollapse     * @param el {HTMLElement} the element to animate     * @param node {YAHOO.util.Node} the node that was expanded     * @return {boolean} true if animation could be invoked, false otherwise     */    animateCollapse: function(el, node) {        this.logger.log("animating collapse");        if (this._collapseAnim && this._animCount < this.maxAnim) {            // this.locked = true;            var tree = this;            var a = YAHOO.widget.TVAnim.getAnim(this._collapseAnim, el,                             function() { tree.collapseComplete(node); });            if (a) {                 ++this._animCount;                this.fireEvent("animStart", {                        "node": node,                         "type": "collapse"                    });                a.animate();            }            return true;        }        return false;    },    /**     * Function executed when the expand animation completes     * @method expandComplete     */    expandComplete: function(node) {        this.logger.log("expand complete: " + this.id);        --this._animCount;        this.fireEvent("animComplete", {                "node": node,                 "type": "expand"            });        // this.locked = false;    },    /**     * Function executed when the collapse animation completes     * @method collapseComplete     */    collapseComplete: function(node) {        this.logger.log("collapse complete: " + this.id);        --this._animCount;        this.fireEvent("animComplete", {                "node": node,                 "type": "collapse"            });        // this.locked = false;    },    /**     * Initializes the tree     * @method init     * @parm {string|HTMLElement} id the id of the element that will hold the tree     * @private     */    init: function(id) {        this.id = id;        if ("string" !== typeof id) {            this._el = id;            this.id = this.generateId(id);        }        /**         * When animation is enabled, this event fires when the animation         * starts         * @event animStart         * @type CustomEvent         * @param {YAHOO.widget.Node} node the node that is expanding/collapsing         * @parm {String} type the type of animation ("expand" or "collapse")         */        this.createEvent("animStart", this);        /**         * When animation is enabled, this event fires when the animation         * completes         * @event animComplete         * @type CustomEvent         * @param {YAHOO.widget.Node} node the node that is expanding/collapsing         * @parm {String} type the type of animation ("expand" or "collapse")         */        this.createEvent("animComplete", this);        /**         * Fires when a node is going to be collapsed.  Return false to stop         * the collapse.         * @event collapse         * @type CustomEvent         * @param {YAHOO.widget.Node} node the node that is collapsing         */        this.createEvent("collapse", this);        /**         * Fires after a node is successfully collapsed.  This event will not fire         * if the "collapse" event was cancelled.         * @event collapseComplete         * @type CustomEvent         * @param {YAHOO.widget.Node} node the node that was collapsed         */        this.createEvent("collapseComplete", this);        /**         * Fires when a node is going to be expanded.  Return false to stop         * the collapse.         * @event expand         * @type CustomEvent         * @param {YAHOO.widget.Node} node the node that is expanding         */        this.createEvent("expand", this);        /**         * Fires after a node is successfully expanded.  This event will not fire         * if the "expand" event was cancelled.         * @event expandComplete         * @type CustomEvent         * @param {YAHOO.widget.Node} node the node that was expanded         */        this.createEvent("expandComplete", this);        this._nodes = [];        // store a global reference        YAHOO.widget.TreeView.trees[this.id] = this;        // Set up the root node        this.root = new YAHOO.widget.RootNode(this);        var LW = YAHOO.widget.LogWriter;        this.logger = (LW) ? new LW(this.toString()) : YAHOO;        this.logger.log("tree init: " + this.id);        // YAHOO.util.Event.onContentReady(this.id, this.handleAvailable, this, true);        // YAHOO.util.Event.on(this.id, "click", this.handleClick, this, true);    },    //handleAvailable: function() {        //var Event = YAHOO.util.Event;        //Event.on(this.id,     //},    /**     * Renders the tree boilerplate and visible nodes     * @method draw     */    draw: function() {        var html = this.root.getHtml();        this.getEl().innerHTML = html;        this.firstDraw = false;    },    /**     * Returns the tree's host element     * @method getEl     * @return {HTMLElement} the host element     */    getEl: function() {        if (! this._el) {            this._el = document.getElementById(this.id);        }        return this._el;    },    /**     * Nodes register themselves with the tree instance when they are created.     * @method regNode     * @param node {Node} the node to register     * @private     */    regNode: function(node) {        this._nodes[node.index] = node;    },    /**     * Returns the root node of this tree     * @method getRoot     * @return {Node} the root node     */    getRoot: function() {        return this.root;    },    /**     * Configures this tree to dynamically load all child data     * @method setDynamicLoad     * @param {function} fnDataLoader the function that will be called to get the data     * @param iconMode {int} configures the icon that is displayed when a dynamic     * load node is expanded the first time without children.  By default, the      * "collapse" icon will be used.  If set to 1, the leaf node icon will be     * displayed.     */    setDynamicLoad: function(fnDataLoader, iconMode) {         this.root.setDynamicLoad(fnDataLoader, iconMode);    },    /**     * Expands all child nodes.  Note: this conflicts with the "multiExpand"     * node property.  If expand all is called in a tree with nodes that     * do not allow multiple siblings to be displayed, only the last sibling     * will be expanded.     * @method expandAll     */    expandAll: function() {         if (!this.locked) {            this.root.expandAll();         }    },    /**     * Collapses all expanded child nodes in the entire tree.     * @method collapseAll     */    collapseAll: function() {         if (!this.locked) {            this.root.collapseAll();         }    },    /**     * Returns a node in the tree that has the specified index (this index     * is created internally, so this function probably will only be used     * in html generated for a given node.)     * @method getNodeByIndex     * @param {int} nodeIndex the index of the node wanted     * @return {Node} the node with index=nodeIndex, null if no match     */    getNodeByIndex: function(nodeIndex) {        var n = this._nodes[nodeIndex];        return (n) ? n : null;    },    /**     * Returns a node that has a matching property and value in the data     * object that was passed into its constructor.     * @method getNodeByProperty     * @param {object} property the property to search (usually a string)     * @param {object} value the value we want to find (usuall an int or string)     * @return {Node} the matching node, null if no match     */    getNodeByProperty: function(property, value) {        for (var i in this._nodes) {            var n = this._nodes[i];            if (n.data && value == n.data[property]) {                return n;            }        }        return null;    },    /**     * Returns a collection of nodes that have a matching property      * and value in the data object that was passed into its constructor.       * @method getNodesByProperty     * @param {object} property the property to search (usually a string)     * @param {object} value the value we want to find (usuall an int or string)     * @return {Array} the matching collection of nodes, null if no match     */    getNodesByProperty: function(property, value) {        var values = [];        for (var i in this._nodes) {            var n = this._nodes[i];            if (n.data && value == n.data[property]) {                values.push(n);            }        }        return (values.length) ? values : null;    },    /**     * Removes the node and its children, and optionally refreshes the      * branch of the tree that was affected.     * @method removeNode     * @param {Node} The node to remove     * @param {boolean} autoRefresh automatically refreshes branch if true     * @return {boolean} False is there was a problem, true otherwise.     */    removeNode: function(node, autoRefresh) {         // Don't delete the root node        if (node.isRoot()) {            return false;        }        // Get the branch that we may need to refresh        var p = node.parent;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品捆绑美女sm三区| 亚洲精品国产一区二区三区四区在线| caoporn国产精品| 亚洲1区2区3区视频| 国产乱色国产精品免费视频| 欧美日韩卡一卡二| 久久精品人人做人人综合| 亚洲一区二区三区四区在线免费观看| 韩国成人在线视频| 欧美精品视频www在线观看| 国产精品天天看| 九九热在线视频观看这里只有精品| 日本精品视频一区二区| 久久综合五月天婷婷伊人| 午夜欧美电影在线观看| 91福利区一区二区三区| 中文乱码免费一区二区| 国产一区二区三区在线观看精品| 制服丝袜激情欧洲亚洲| 亚洲一区二区三区在线看 | 国产偷国产偷精品高清尤物| 午夜a成v人精品| 色综合网站在线| 国产精品久久久久久妇女6080 | 国内不卡的二区三区中文字幕| 欧美综合色免费| 亚洲欧美日韩国产综合| 国产91清纯白嫩初高中在线观看| 欧美成人一区二区三区在线观看| 视频一区视频二区中文| 欧美无砖专区一中文字| 亚洲一区二区三区中文字幕| 色婷婷久久久久swag精品| 亚洲人成精品久久久久久| 99精品视频中文字幕| 亚洲色欲色欲www| 一本色道**综合亚洲精品蜜桃冫| 17c精品麻豆一区二区免费| 99综合影院在线| 亚洲男女一区二区三区| 欧洲一区二区三区免费视频| 亚洲精品第1页| 欧美三级韩国三级日本一级| 亚洲成人综合视频| 8x福利精品第一导航| 老汉av免费一区二区三区| 欧美成人女星排行榜| 国产一区二区三区免费看| 国产日韩精品一区二区三区在线| 成人动漫一区二区在线| 亚洲欧美日韩综合aⅴ视频| 欧美无砖专区一中文字| 美洲天堂一区二卡三卡四卡视频| 精品国精品国产尤物美女| 国产91精品久久久久久久网曝门 | 午夜久久久影院| 欧美老女人在线| 精品一区二区免费在线观看| 国产女同互慰高潮91漫画| 91首页免费视频| 视频精品一区二区| 国产无一区二区| 欧美天堂亚洲电影院在线播放| 日本美女视频一区二区| 国产婷婷色一区二区三区在线| 91久久国产综合久久| 麻豆成人av在线| 亚洲视频狠狠干| 日韩精品专区在线影院重磅| av男人天堂一区| 日韩成人精品视频| 1024精品合集| 亚洲精品在线三区| 日本高清免费不卡视频| 国内精品久久久久影院一蜜桃| 亚洲欧洲无码一区二区三区| 欧美一区二区免费观在线| 成人一级片网址| 日本色综合中文字幕| 中文字幕在线一区免费| 日韩精品一区二区三区四区视频 | 狠狠色综合日日| 夜夜亚洲天天久久| 国产欧美综合色| 欧美一区二区二区| 在线视频你懂得一区| 国产精品2024| 久久国产精品99久久人人澡| 亚洲卡通动漫在线| 中文字幕+乱码+中文字幕一区| 91精品国产入口在线| 在线精品视频一区二区| 成人性视频免费网站| 麻豆成人久久精品二区三区红| 亚洲一二三区在线观看| 国产精品国产三级国产aⅴ原创 | 久久精品人人做人人爽人人| 在线91免费看| 不卡的电影网站| 韩国av一区二区三区在线观看| 久久久久一区二区三区四区| 成人免费av网站| 亚洲自拍偷拍网站| 日韩欧美国产综合一区| 制服.丝袜.亚洲.另类.中文 | 精品捆绑美女sm三区| 成人不卡免费av| 午夜激情综合网| 亚洲综合一区在线| 亚洲精品写真福利| 国产精品久久久久久久浪潮网站 | 亚洲精品在线免费播放| 日韩视频免费直播| 91麻豆精品91久久久久同性| 欧美亚洲日本国产| 国产精品资源在线看| 欧美日韩高清影院| 一区二区三区视频在线看| www日韩大片| 久久婷婷色综合| 国产三级一区二区三区| 国产视频在线观看一区二区三区| 精品少妇一区二区三区在线播放 | 粉嫩av一区二区三区在线播放 | 成人黄色片在线观看| 国产成人在线色| 丁香亚洲综合激情啪啪综合| 国产91精品免费| 99re视频精品| 欧美色欧美亚洲另类二区| 欧美日韩午夜在线视频| 欧美电影一区二区三区| 欧美一区二区三区四区高清 | 欧美日韩国产123区| 欧美一区日韩一区| 久久综合av免费| 国产精品久久看| 亚洲国产中文字幕| 美女视频免费一区| 风间由美性色一区二区三区| 97久久精品人人爽人人爽蜜臀| 欧美性高清videossexo| 日韩美一区二区三区| 欧美国产精品专区| 亚洲一区二区三区四区在线| 日韩av二区在线播放| 国产成人在线色| 在线观看一区二区视频| 欧美成人精品二区三区99精品| 欧美国产乱子伦| 五月婷婷激情综合| 国产精品一区二区久激情瑜伽| 99九九99九九九视频精品| 在线播放中文一区| 国产精品美女久久久久aⅴ| 亚洲一区二区三区精品在线| 国产自产v一区二区三区c| 色综合欧美在线视频区| 精品国产麻豆免费人成网站| 成人免费在线观看入口| 亚洲观看高清完整版在线观看| 亚洲国产精品一区二区久久恐怖片 | 青娱乐精品视频在线| 国产99久久久国产精品| 欧美疯狂做受xxxx富婆| 国产精品午夜久久| 美腿丝袜一区二区三区| 色综合久久88色综合天天免费| 日韩精品专区在线| 亚洲狠狠爱一区二区三区| 国产精品亚洲午夜一区二区三区 | 91精品国产综合久久小美女| 亚洲国产高清在线观看视频| 日韩av不卡在线观看| 99久久99久久精品免费观看| 亚洲精品一区二区在线观看| 亚洲成人精品一区| 6080日韩午夜伦伦午夜伦| 亚洲欧美视频在线观看| 国产寡妇亲子伦一区二区| 欧美一级高清片在线观看| 亚洲综合在线视频| 91亚洲男人天堂| 国产免费久久精品| 国产麻豆午夜三级精品| 91精品国产一区二区三区蜜臀| 亚洲电影在线免费观看| 91福利视频久久久久| 日韩一区欧美小说| 波波电影院一区二区三区| 国产情人综合久久777777| 国内外成人在线视频| 日韩欧美另类在线| 亚洲va欧美va国产va天堂影院| 91视频国产观看| 亚洲人成网站影音先锋播放| 91热门视频在线观看| 国产精品国产三级国产三级人妇| 成人一区二区三区中文字幕| 久久亚洲精品国产精品紫薇|