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

📄 calendar-debug.js

📁 这是YUI的源码及相关示例。里面有很多很炫的Javascript效果。
💻 JS
📖 第 1 页 / 共 5 页
字号:
                    if (this.queueInProgress) {                        this.queueProperty(key);                    } else {                        this.fireEvent(key, property.value);                    }                }        },                /**        * Applies a key-value Object literal to the configuration, replacing          * any existing values, and queueing the property events.        * Although the values will be set, fireQueue() must be called for their         * associated events to execute.        * @method applyConfig        * @param {Object} userConfig The configuration Object literal        * @param {Boolean} init  When set to true, the initialConfig will         * be set to the userConfig passed in, so that calling a reset will         * reset the properties to the passed values.        */        applyConfig: function (userConfig, init) {                    var sKey,                oConfig;            if (init) {                oConfig = {};                for (sKey in userConfig) {                    if (Lang.hasOwnProperty(userConfig, sKey)) {                        oConfig[sKey.toLowerCase()] = userConfig[sKey];                    }                }                this.initialConfig = oConfig;            }            for (sKey in userConfig) {                if (Lang.hasOwnProperty(userConfig, sKey)) {                    this.queueProperty(sKey, userConfig[sKey]);                }            }        },                /**        * Refires the events for all configuration properties using their         * current values.        * @method refresh        */        refresh: function () {            var prop;            for (prop in this.config) {                if (Lang.hasOwnProperty(this.config, prop)) {                    this.refireEvent(prop);                }            }        },                /**        * Fires the normalized list of queued property change events        * @method fireQueue        */        fireQueue: function () {                    var i,                 queueItem,                key,                value,                property;                    this.queueInProgress = true;            for (i = 0;i < this.eventQueue.length; i++) {                queueItem = this.eventQueue[i];                if (queueItem) {                            key = queueItem[0];                    value = queueItem[1];                    property = this.config[key];                            property.value = value;                            this.fireEvent(key,value);                }            }                        this.queueInProgress = false;            this.eventQueue = [];        },                /**        * Subscribes an external handler to the change event for any         * given property.         * @method subscribeToConfigEvent        * @param {String} key The property name        * @param {Function} handler The handler function to use subscribe to         * the property's event        * @param {Object} obj The Object to use for scoping the event handler         * (see CustomEvent documentation)        * @param {Boolean} override Optional. If true, will override "this"          * within the handler to map to the scope Object passed into the method.        * @return {Boolean} True, if the subscription was successful,         * otherwise false.        */         subscribeToConfigEvent: function (key, handler, obj, override) {                var property = this.config[key.toLowerCase()];                if (property && property.event) {                if (!Config.alreadySubscribed(property.event, handler, obj)) {                    property.event.subscribe(handler, obj, override);                }                return true;            } else {                return false;            }            },                /**        * Unsubscribes an external handler from the change event for any         * given property.         * @method unsubscribeFromConfigEvent        * @param {String} key The property name        * @param {Function} handler The handler function to use subscribe to         * the property's event        * @param {Object} obj The Object to use for scoping the event         * handler (see CustomEvent documentation)        * @return {Boolean} True, if the unsubscription was successful,         * otherwise false.        */        unsubscribeFromConfigEvent: function (key, handler, obj) {            var property = this.config[key.toLowerCase()];            if (property && property.event) {                return property.event.unsubscribe(handler, obj);            } else {                return false;            }        },                /**        * Returns a string representation of the Config object        * @method toString        * @return {String} The Config object in string format.        */        toString: function () {            var output = "Config";            if (this.owner) {                output += " [" + this.owner.toString() + "]";            }            return output;        },                /**        * Returns a string representation of the Config object's current         * CustomEvent queue        * @method outputEventQueue        * @return {String} The string list of CustomEvents currently queued         * for execution        */        outputEventQueue: function () {            var output = "",                queueItem,                q,                nQueue = this.eventQueue.length;                          for (q = 0; q < nQueue; q++) {                queueItem = this.eventQueue[q];                if (queueItem) {                    output += queueItem[0] + "=" + queueItem[1] + ", ";                }            }            return output;        },        /**        * Sets all properties to null, unsubscribes all listeners from each         * property's change event and all listeners from the configChangedEvent.        * @method destroy        */        destroy: function () {            var oConfig = this.config,                sProperty,                oProperty;            for (sProperty in oConfig) {                            if (Lang.hasOwnProperty(oConfig, sProperty)) {                    oProperty = oConfig[sProperty];                    oProperty.event.unsubscribeAll();                    oProperty.event = null;                }                        }                        this.configChangedEvent.unsubscribeAll();                        this.configChangedEvent = null;            this.owner = null;            this.config = null;            this.initialConfig = null;            this.eventQueue = null;                }    };                /**    * Checks to determine if a particular function/Object pair are already     * subscribed to the specified CustomEvent    * @method YAHOO.util.Config.alreadySubscribed    * @static    * @param {YAHOO.util.CustomEvent} evt The CustomEvent for which to check     * the subscriptions    * @param {Function} fn The function to look for in the subscribers list    * @param {Object} obj The execution scope Object for the subscription    * @return {Boolean} true, if the function/Object pair is already subscribed     * to the CustomEvent passed in    */    Config.alreadySubscribed = function (evt, fn, obj) {            var nSubscribers = evt.subscribers.length,            subsc,            i;        if (nSubscribers > 0) {            i = nSubscribers - 1;            do {                subsc = evt.subscribers[i];                if (subsc && subsc.obj == obj && subsc.fn == fn) {                    return true;                }            }            while (i--);        }        return false;    };    YAHOO.lang.augmentProto(Config, YAHOO.util.EventProvider);}());/*** YAHOO.widget.DateMath is used for simple date manipulation. The class is a static utility* used for adding, subtracting, and comparing dates.* @namespace YAHOO.widget* @class DateMath*/YAHOO.widget.DateMath = {	/**	* Constant field representing Day	* @property DAY	* @static	* @final	* @type String	*/	DAY : "D",	/**	* Constant field representing Week	* @property WEEK	* @static	* @final	* @type String	*/	WEEK : "W",	/**	* Constant field representing Year	* @property YEAR	* @static	* @final	* @type String	*/	YEAR : "Y",	/**	* Constant field representing Month	* @property MONTH	* @static	* @final	* @type String	*/	MONTH : "M",	/**	* Constant field representing one day, in milliseconds	* @property ONE_DAY_MS	* @static	* @final	* @type Number	*/	ONE_DAY_MS : 1000*60*60*24,		/**	 * Constant field representing the date in first week of January	 * which identifies the first week of the year.	 * <p>	 * In the U.S, Jan 1st is normally used based on a Sunday start of week.	 * ISO 8601, used widely throughout Europe, uses Jan 4th, based on a Monday start of week.	 * </p>	 * @property WEEK_ONE_JAN_DATE	 * @static	 * @type Number	 */	WEEK_ONE_JAN_DATE : 1,	/**	* Adds the specified amount of time to the this instance.	* @method add	* @param {Date} date	The JavaScript Date object to perform addition on	* @param {String} field	The field constant to be used for performing addition.	* @param {Number} amount	The number of units (measured in the field constant) to add to the date.	* @return {Date} The resulting Date object	*/	add : function(date, field, amount) {		var d = new Date(date.getTime());		switch (field) {			case this.MONTH:				var newMonth = date.getMonth() + amount;				var years = 0;				if (newMonth < 0) {					while (newMonth < 0) {						newMonth += 12;						years -= 1;					}				} else if (newMonth > 11) {					while (newMonth > 11) {						newMonth -= 12;						years += 1;					}				}				d.setMonth(newMonth);				d.setFullYear(date.getFullYear() + years);				break;			case this.DAY:				this._addDays(d, amount);				// d.setDate(date.getDate() + amount);				break;			case this.YEAR:				d.setFullYear(date.getFullYear() + amount);				break;			case this.WEEK:				this._addDays(d, (amount * 7));				// d.setDate(date.getDate() + (amount * 7));				break;		}		return d;	},	/**	 * Private helper method to account for bug in Safari 2 (webkit < 420)	 * when Date.setDate(n) is called with n less than -128 or greater than 127.	 * <p>	 * Fix approach and original findings are available here:	 * http://brianary.blogspot.com/2006/03/safari-date-bug.html	 * </p>	 * @method _addDays	 * @param {Date} d JavaScript date object	 * @param {Number} nDays The number of days to add to the date object (can be negative)	 * @private	 */	_addDays : function(d, nDays) {		if (YAHOO.env.ua.webkit && YAHOO.env.ua.webkit < 420) {			if (nDays < 0) {				// Ensure we don't go below -128 (getDate() is always 1 to 31, so we won't go above 127)				for(var min = -128; nDays < min; nDays -= min) {					d.setDate(d.getDate() + min);				}			} else {				// Ensure we don't go above 96 + 31 = 127				for(var max = 96; nDays > max; nDays -= max) {					d.setDate(d.getDate() + max);				}			}			// nDays should be remainder between -128 and 96		}		d.setDate(d.getDate() + nDays);	},	/**	* Subtracts the specified amount of time from the this instance.	* @method subtract	* @param {Date} date	The JavaScript Date object to perform subtraction on	* @param {Number} field	The this field constant to be used for performing subtraction.	* @param {Number} amount	The number of units (measured in the field constant) to subtract from the date.	* @return {Date} The resulting Date object	*/	subtract : function(date, field, amount) {		return this.add(date, field, (amount*-1));	},	/**	* Determines whether a given date is before another date on the calendar.	* @method before	* @param {Date} date		The Date object to compare with the compare argument	* @param {Date} compareTo	The Date object to use for the comparison	* @return {Boolean} true if the date occurs before the compared date; false if not.	*/	before : function(date, compareTo) {		var ms = compareTo.getTime();		if (date.getTime() < ms) {			return true;		} else {			return false;		}	},	/**	* Determines whether a given date is after another date on the calendar.	* @method after	* @param {Date} date		The Date object to compare with the compare argument	* @param {Date} compareTo	The Date object to use for the comparison	* @return {Boolean} true if the date occurs after the compared date; false if not.	*/	after : function(date, compareTo) {		var ms = compareTo.getTime();		if (date.getTime() > ms) {			return true;		} else {			return false;

⌨️ 快捷键说明

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