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

📄 button-beta-debug.js

📁 国外的人才求职招聘最新版
💻 JS
📖 第 1 页 / 共 5 页
字号:
                        /**        * @method _isActivationKey        * @description Determines if the specified keycode is one that toggles          * the button's "active" state.        * @protected        * @param {Number} p_nKeyCode Number representing the keycode to         * be evaluated.        * @return {Boolean}        */        _isActivationKey: function (p_nKeyCode) {                    var sType = this.get("type"),                aKeyCodes = (sType == "checkbox" || sType == "radio") ?                     this.CHECK_ACTIVATION_KEYS : this.ACTIVATION_KEYS,                        nKeyCodes = aKeyCodes.length,                i;                    if (nKeyCodes > 0) {                        i = nKeyCodes - 1;                        do {                            if (p_nKeyCode == aKeyCodes[i]) {                                return true;                            }                        }                while (i--);                        }                },                        /**        * @method _isSplitButtonOptionKey        * @description Determines if the specified keycode is one that toggles          * the display of the split button's menu.        * @protected        * @param {Event} p_oEvent Object representing the DOM event object          * passed back by the event utility (YAHOO.util.Event).        * @return {Boolean}        */        _isSplitButtonOptionKey: function (p_oEvent) {                    return (p_oEvent.ctrlKey && p_oEvent.shiftKey &&                 Event.getCharCode(p_oEvent) == 77);                },                        /**        * @method _addListenersToForm        * @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) {                            this.logger.log("Current menu position will place a " +                         "portion, or the entire menu outside the boundary of " +                        "the viewport.  Repositioning the menu to stay " +                        "inside the viewport.");                            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) {                            this.logger.log("Current menu position will place a " +                        "portion, or the entire menu outside the boundary of " +                         "the viewport.  Repositioning the menu to stay inside" +                         " the viewport.");                            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;

⌨️ 快捷键说明

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