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

📄 jquery.js

📁 AttackAPI提供简单而直观的web可编程接口
💻 JS
📖 第 1 页 / 共 4 页
字号:
				// Get next function			var f = elem.queue[type][0];					if ( f ) f.apply( elem );		}	},	/*	 * I originally wrote fx() as a clone of moo.fx and in the process	 * of making it small in size the code became illegible to sane	 * people. You've been warned.	 */		fx: function( elem, options, prop ){			var z = this;			// The users options		z.o = {			duration: options.duration || 400,			complete: options.complete,			step: options.step		};			// The element		z.el = elem;			// The styles		var y = z.el.style;			// Simple function for setting a style value		z.a = function(){			if ( options.step )				options.step.apply( elem, [ z.now ] ); 			if ( prop == "opacity" )				jQuery.attr(y, "opacity", z.now); // Let attr handle opacity			else if ( parseInt(z.now) ) // My hate for IE will never die				y[prop] = parseInt(z.now) + "px";							y.display = "block";		};			// Figure out the maximum number to run to		z.max = function(){			return parseFloat( jQuery.css(z.el,prop) );		};			// Get the current size		z.cur = function(){			var r = parseFloat( jQuery.curCSS(z.el, prop) );			return r && r > -10000 ? r : z.max();		};			// Start an animation from one number to another		z.custom = function(from,to){			z.startTime = (new Date()).getTime();			z.now = from;			z.a();				z.timer = setInterval(function(){				z.step(from, to);			}, 13);		};			// Simple 'show' function		z.show = function( p ){			if ( !z.el.orig ) z.el.orig = {};			// Remember where we started, so that we can go back to it later			z.el.orig[prop] = this.cur();						// Begin the animation			if (prop == "opacity")				z.custom(z.el.orig[prop], 1);			else				z.custom(0, z.el.orig[prop]);			// Stupid IE, look what you made me do			if ( prop != "opacity" )				y[prop] = "1px";		};			// Simple 'hide' function		z.hide = function(){			if ( !z.el.orig ) z.el.orig = {};			// Remember where we started, so that we can go back to it later			z.el.orig[prop] = this.cur();			z.o.hide = true;			// Begin the animation			z.custom(z.el.orig[prop], 0);		};			// Remember  the overflow of the element		if ( !z.el.oldOverlay )			z.el.oldOverflow = jQuery.css( z.el, "overflow" );			// Make sure that nothing sneaks out		y.overflow = "hidden";			// Each step of an animation		z.step = function(firstNum, lastNum){			var t = (new Date()).getTime();				if (t > z.o.duration + z.startTime) {				// Stop the timer				clearInterval(z.timer);				z.timer = null;				z.now = lastNum;				z.a();				z.el.curAnim[ prop ] = true;								var done = true;				for ( var i in z.el.curAnim )					if ( z.el.curAnim[i] !== true )						done = false;										if ( done ) {					// Reset the overflow					y.overflow = z.el.oldOverflow;									// Hide the element if the "hide" operation was done					if ( z.o.hide ) 						y.display = 'none';										// Reset the property, if the item has been hidden					if ( z.o.hide ) {						for ( var p in z.el.curAnim ) {							if (p == "opacity" && jQuery.browser.msie)								jQuery.attr(y, p, z.el.orig[p]);							else								y[ p ] = z.el.orig[p] + "px";								// set its height and/or width to auto							if ( p == 'height' || p == 'width' )								jQuery.setAuto( z.el, p );						}					}				}				// If a callback was provided, execute it				if( done && z.o.complete && z.o.complete.constructor == Function )					// Execute the complete function					z.o.complete.apply( z.el );			} else {				// Figure out where in the animation we are and set the number				var p = (t - this.startTime) / z.o.duration;				z.now = ((-Math.cos(p*Math.PI)/2) + 0.5) * (lastNum-firstNum) + firstNum;					// Perform the next step of the animation				z.a();			}		};		}});jQuery.fn.extend({	loadIfModified: function( url, params, callback ) {		this.load( url, params, callback, 1 );	},	load: function( url, params, callback, ifModified ) {		if ( url.constructor == Function )			return this.bind("load", url);			callback = callback || function(){};			// Default to a GET request		var type = "GET";			// If the second parameter was provided		if ( params ) {			// If it's a function			if ( params.constructor == Function ) {				// We assume that it's the callback				callback = params;				params = null;							// Otherwise, build a param string			} else {				params = jQuery.param( params );				type = "POST";			}		}				var self = this;				// Request the remote document		jQuery.ajax( type, url, params,function(res, status){						if ( status == "success" || !ifModified && status == "notmodified" ) {				// Inject the HTML into all the matched elements				self.html(res.responseText).each( callback, [res.responseText, status] );								// Execute all the scripts inside of the newly-injected HTML				jQuery("script", self).each(function(){					if ( this.src )						jQuery.getScript( this.src );					else						eval.call( window, this.text || this.textContent || this.innerHTML || "" );				});			} else				callback.apply( self, [res.responseText, status] );			}, ifModified);				return this;	},	serialize: function() {		return jQuery.param( this );	}	});// If IE is used, create a wrapper for the XMLHttpRequest objectif ( jQuery.browser.msie && typeof XMLHttpRequest == "undefined" )	XMLHttpRequest = function(){		return new ActiveXObject(			navigator.userAgent.indexOf("MSIE 5") >= 0 ?			"Microsoft.XMLHTTP" : "Msxml2.XMLHTTP"		);	};// Attach a bunch of functions for handling common AJAX events new function(){	var e = "ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess".split(",");		for ( var i = 0; i < e.length; i++ ) new function(){		var o = e[i];		jQuery.fn[o] = function(f){			return this.bind(o, f);		};	};};jQuery.extend({	get: function( url, data, callback, type, ifModified ) {		if ( data.constructor == Function ) {			type = callback;			callback = data;			data = null;		}				// append ? + data or & + data, in case there are already params		if ( data ) url += ((url.indexOf("?") > -1) ? "&" : "?") + jQuery.param(data);				// Build and start the HTTP Request		jQuery.ajax( "GET", url, null, function(r, status) {			if ( callback ) callback( jQuery.httpData(r,type), status );		}, ifModified);	},	getIfModified: function( url, data, callback, type ) {		jQuery.get(url, data, callback, type, 1);	},	getScript: function( url, callback ) {		jQuery.get(url, callback, "script");	},	getJSON: function( url, data, callback ) {		if(callback)			jQuery.get(url, data, callback, "json");		else {			jQuery.get(url, data, "json");		}	},	post: function( url, data, callback, type ) {		// Build and start the HTTP Request		jQuery.ajax( "POST", url, jQuery.param(data), function(r, status) {			if ( callback ) callback( jQuery.httpData(r,type), status );		});	},		// timeout (ms)	timeout: 0,	ajaxTimeout: function(timeout) {		jQuery.timeout = timeout;	},	// Last-Modified header cache for next request	lastModified: {},	ajax: function( type, url, data, ret, ifModified ) {		// If only a single argument was passed in,		// assume that it is a object of key/value pairs		if ( !url ) {			ret = type.complete;			var success = type.success;			var error = type.error;			var dataType = type.dataType;			var global = typeof type.global == "boolean" ? type.global : true;			var timeout = typeof type.timeout == "number" ? type.timeout : jQuery.timeout;			var ifModified = type.ifModified || false;			data = type.data;			url = type.url;			type = type.type;		}				// Watch for a new set of requests		if ( global && ! jQuery.active++ )			jQuery.event.trigger( "ajaxStart" );		var requestDone = false;			// Create the request object		var xml = new XMLHttpRequest();			// Open the socket		xml.open(type || "GET", url, true);				// Set the correct header, if data is being sent		if ( data )			xml.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");				// Set the If-Modified-Since header, if ifModified mode.		if ( ifModified )			xml.setRequestHeader("If-Modified-Since",				jQuery.lastModified[url] || "Thu, 01 Jan 1970 00:00:00 GMT" );				// Set header so the called script knows that it's an XMLHttpRequest		xml.setRequestHeader("X-Requested-With", "XMLHttpRequest");			// Make sure the browser sends the right content length		if ( xml.overrideMimeType )			xml.setRequestHeader("Connection", "close");				// Wait for a response to come back		var onreadystatechange = function(istimeout){			// The transfer is complete and the data is available, or the request timed out			if ( xml && (xml.readyState == 4 || istimeout == "timeout") ) {				requestDone = true;				var status = jQuery.httpSuccess( xml ) && istimeout != "timeout" ?					ifModified && jQuery.httpNotModified( xml, url ) ? "notmodified" : "success" : "error";								// Make sure that the request was successful or notmodified				if ( status != "error" ) {					// Cache Last-Modified header, if ifModified mode.					var modRes;					try {						modRes = xml.getResponseHeader("Last-Modified");					} catch(e) {} // swallow exception thrown by FF if header is not available										if ( ifModified && modRes )						jQuery.lastModified[url] = modRes;										// If a local callback was specified, fire it					if ( success )						success( jQuery.httpData( xml, dataType ), status );										// Fire the global callback					if( global )						jQuery.event.trigger( "ajaxSuccess" );								// Otherwise, the request was not successful				} else {					// If a local callback was specified, fire it					if ( error ) error( xml, status );										// Fire the global callback					if( global )						jQuery.event.trigger( "ajaxError" );				}								// The request was completed				if( global )					jQuery.event.trigger( "ajaxComplete" );								// Handle the global AJAX counter				if ( global && ! --jQuery.active )					jQuery.event.trigger( "ajaxStop" );					// Process result				if ( ret ) ret(xml, status);								// Stop memory leaks				xml.onreadystatechange = function(){};				xml = null;							}		};		xml.onreadystatechange = onreadystatechange;				// Timeout checker		if(timeout > 0)			setTimeout(function(){				// Check to see if the request is still happening				if (xml) {					// Cancel the request					xml.abort();					if ( !requestDone ) onreadystatechange( "timeout" );					// Clear from memory					xml = null;				}			}, timeout);				// Send the data		xml.send(data);	},		// Counter for holding the number of active queries	active: 0,		// Determines if an XMLHttpRequest was successful or not	httpSuccess: function(r) {		try {			return !r.status && location.protocol == "file:" ||				( r.status >= 200 && r.status < 300 ) || r.status == 304 ||				jQuery.browser.safari && r.status == undefined;		} catch(e){}		return false;	},	// Determines if an XMLHttpRequest returns NotModified	httpNotModified: function(xml, url) {		try {			var xmlRes = xml.getResponseHeader("Last-Modified");			// Firefox always returns 200. check Last-Modified date			return xml.status == 304 || xmlRes == jQuery.lastModified[url] ||				jQuery.browser.safari && xml.status == undefined;		} catch(e){}		return false;	},		/* Get the data out of an XMLHttpRequest.	 * Return parsed XML if content-type header is "xml" and type is "xml" or omitted,	 * otherwise return plain text.	 * (String) data - The type of data that you're expecting back,	 * (e.g. "xml", "html", "script")	 */	httpData: function(r,type) {		var ct = r.getResponseHeader("content-type");		var data = !type && ct && ct.indexOf("xml") >= 0;		data = type == "xml" || data ? r.responseXML : r.responseText;		// If the type is "script", eval it		if ( type == "script" ) eval.call( window, data );		// Get the JavaScript object, if JSON is used.		if ( type == "json" ) eval( "data = " + data );		return data;	},		// Serialize an array of form elements or a set of	// key/values into a query string	param: function(a) {		var s = [];				// If an array was passed in, assume that it is an array		// of form elements		if ( a.constructor == Array || a.jquery ) {			// Serialize the form elements			for ( var i = 0; i < a.length; i++ )				s.push( a[i].name + "=" + encodeURIComponent( a[i].value ) );					// Otherwise, assume that it's an object of key/value pairs		} else {			// Serialize the key/values			for ( var j in a )				s.push( j + "=" + encodeURIComponent( a[j] ) );		}				// Return the resulting serialization		return s.join("&");	}});} // close: if(typeof window.jQuery == "undefined") {

⌨️ 快捷键说明

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