⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 button-beta.js

📁 国外的人才求职招聘最新版
💻 JS
📖 第 1 页 / 共 5 页
字号:
        * @description Adds event handlers to the button's form.        * @protected        */        _addListenersToForm: function () {                    var oForm = this.getForm(),                oSrcElement,                aListeners,                nListeners,                i,                bHasKeyPressListener;                            if (oForm) {                        Event.on(oForm, "reset", this._onFormReset, null, this);                Event.on(oForm, "submit", this.createHiddenFields, null, this);                        oSrcElement = this.get("srcelement");                                if (this.get("type") == "submit" ||                     (oSrcElement && oSrcElement.type == "submit"))                 {                                    aListeners = Event.getListeners(oForm, "keypress");                    bHasKeyPressListener = false;                                if (aListeners) {                                    nListeners = aListeners.length;                                if (nListeners > 0) {                                        i = nListeners - 1;                                                        do {                                               if (aListeners[i].fn ==                                     YAHOO.widget.Button.onFormKeyPress)                                 {                                                    bHasKeyPressListener = true;                                    break;                                                                }                                            }                            while (i--);                                                }                                        }                                            if (!bHasKeyPressListener) {                                Event.on(oForm, "keypress",                             YAHOO.widget.Button.onFormKeyPress);                                }                        }                        }                },                        _originalMaxHeight: -1,                        /**        * @method _showMenu        * @description Shows the button's menu.        * @protected        * @param {Event} p_oEvent Object representing the DOM event object         * passed back by the event utility (YAHOO.util.Event) that triggered         * the display of the menu.        */        _showMenu: function (p_oEvent) {                    YAHOO.widget.MenuManager.hideVisible();                    if (m_oOverlayManager) {                        m_oOverlayManager.hideAll();                        }                            var oMenu = this._menu,                nViewportHeight = Dom.getViewportHeight(),                nMenuHeight,                nScrollTop,                nY;                            if (oMenu && (oMenu instanceof Menu)) {                        oMenu.cfg.applyConfig({ context: [this.get("id"), "tl", "bl"],                    constraintoviewport: false,                    clicktohide: false,                    visible: true });                                    oMenu.cfg.fireQueue();                            oMenu.align("tl", "bl");                        /*                    Stop the propagation of the event so that the MenuManager                     doesn't blur the menu after it gets focus.                */                        if (p_oEvent.type == "mousedown") {                            Event.stopPropagation(p_oEvent);                        }                if (this.get("focusmenu")) {                            this._menu.focus();                                }                        nMenuHeight = oMenu.element.offsetHeight;                                if ((oMenu.cfg.getProperty("y") + nMenuHeight) >                     nViewportHeight) {                                    oMenu.align("bl", "tl");                            nY = oMenu.cfg.getProperty("y");                            nScrollTop = Dom.getDocumentScrollTop();                                    if (nScrollTop >= nY) {                                if (this._originalMaxHeight == -1) {                                    this._originalMaxHeight =                                     oMenu.cfg.getProperty("maxheight");                                }                                oMenu.cfg.setProperty("maxheight",                                     (nMenuHeight - ((nScrollTop - nY) + 20)));                                oMenu.align("bl", "tl");                            }                        }                    }            else if (oMenu && (oMenu instanceof Overlay)) {                        oMenu.show();                oMenu.align("tl", "bl");                nMenuHeight = oMenu.element.offsetHeight;                                if ((oMenu.cfg.getProperty("y") + nMenuHeight) >                     nViewportHeight) {                                    oMenu.align("bl", "tl");                                    }                    }                },                        /**        * @method _hideMenu        * @description Hides the button's menu.        * @protected        */        _hideMenu: function () {                    var oMenu = this._menu;                    if (oMenu) {                        oMenu.hide();                    }                },                                        // Protected event handlers                        /**        * @method _onMouseOver        * @description "mouseover" event handler for the button.        * @protected        * @param {Event} p_oEvent Object representing the DOM event object          * passed back by the event utility (YAHOO.util.Event).        */        _onMouseOver: function (p_oEvent) {                    if (!this._hasMouseEventHandlers) {                        this.on("mouseout", this._onMouseOut);                this.on("mousedown", this._onMouseDown);                this.on("mouseup", this._onMouseUp);                        this._hasMouseEventHandlers = true;                    }                    this.addStateCSSClasses("hover");                    if (this._activationButtonPressed) {                        this.addStateCSSClasses("active");                    }                            if (this._bOptionPressed) {                        this.addStateCSSClasses("activeoption");                        }                },                        /**        * @method _onMouseOut        * @description "mouseout" event handler for the button.        * @protected        * @param {Event} p_oEvent Object representing the DOM event object          * passed back by the event utility (YAHOO.util.Event).        */        _onMouseOut: function (p_oEvent) {                    this.removeStateCSSClasses("hover");                    if (this.get("type") != "menu") {                        this.removeStateCSSClasses("active");                    }                    if (this._activationButtonPressed || this._bOptionPressed) {                        Event.on(document, "mouseup", this._onDocumentMouseUp,                     null, this);                    }                    },                        /**        * @method _onDocumentMouseUp        * @description "mouseup" event handler for the button.        * @protected        * @param {Event} p_oEvent Object representing the DOM event object          * passed back by the event utility (YAHOO.util.Event).        */        _onDocumentMouseUp: function (p_oEvent) {                    this._activationButtonPressed = false;            this._bOptionPressed = false;                    var sType = this.get("type");                    if (sType == "menu" || sType == "split") {                        this.removeStateCSSClasses(                    (sType == "menu" ? "active" : "activeoption"));                        this._hideMenu();                    }                    Event.removeListener(document, "mouseup", this._onDocumentMouseUp);                },                        /**        * @method _onMouseDown        * @description "mousedown" event handler for the button.        * @protected        * @param {Event} p_oEvent Object representing the DOM event object          * passed back by the event utility (YAHOO.util.Event).        */        _onMouseDown: function (p_oEvent) {                    var sType,                oElement,                nX,                me;                            function onMouseUp() {                            this._hideMenu();                this.removeListener("mouseup", onMouseUp);                        }                            if ((p_oEvent.which || p_oEvent.button) == 1) {                                if (!this.hasFocus()) {                                    this.focus();                                }                                sType = this.get("type");                                if (sType == "split") {                                    oElement = this.get("element");                    nX = Event.getPageX(p_oEvent) - Dom.getX(oElement);                            if ((oElement.offsetWidth - this.OPTION_AREA_WIDTH) < nX) {                                                this.fireEvent("option", p_oEvent);                            }                    else {                                this.addStateCSSClasses("active");                                this._activationButtonPressed = true;                            }                        }                else if (sType == "menu") {                            if (this.isActive()) {                                this._hideMenu();                                this._activationButtonPressed = false;                            }                    else {                                this._showMenu(p_oEvent);                                this._activationButtonPressed = true;                                        }                        }                else {                            this.addStateCSSClasses("active");                            this._activationButtonPressed = true;                                }                                        if (sType == "split" || sType == "menu") {                    me = this;                            this._hideMenuTimerId = window.setTimeout(function () {                                            me.on("mouseup", onMouseUp);                                        }, 250);                        }                    }                    },                        /**        * @method _onMouseUp        * @description "mouseup" event handler for the button.        * @protected        * @param {Event} p_oEvent Object representing the DOM event object          * passed back by the event utility (YAHOO.util.Event).        */        _onMouseUp: function (p_oEvent) {                    var sType = this.get("type");                            if (this._hideMenuTimerId) {                        window.clearTimeout(this._hideMenuTimerId);                    }                            if (sType == "checkbox" || sType == "radio") {                        this.set("checked", !(this.get("checked")));                        }                            this._activationButtonPressed = false;                                if (this.get("type") != "menu") {                        this.removeStateCSSClasses("active");                        }                    },                        /**        * @method _onFocus        * @description "focus" event handler for the button.        * @protected        * @param {Event} p_oEvent Object representing the DOM event object          * passed back by the event utility (YAHOO.util.Event).        */        _onFocus: function (p_oEvent) {                    var oElement;                    this.addStateCSSClasses("focus");                    if (this._activationKeyPressed) {                        this.addStateCSSClasses("active");                       }                    m_oFocusedButton = this;                            if (!this._hasKeyEventHandlers) {                        oElement = this._button;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -