- 浏览: 427687 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
xiaomuxingren:
你好,请问update-alternatives --inst ...
JDK8安装及jenkins安装 -
wahahachuang8:
我觉得这种东西自己开发太麻烦了,就别自己捣鼓了,找个第三方,方 ...
HTML5 WebSocket -
晨曦的朝阳:
刚好有需求,学习一下!
MySql主从配置 -
mfkvfn:
这是恶意的商业竞争呀
解决 android 微信5.0及后续版本无法打开电话号码的问题 -
fwyhf:
require('./monitor/module_liste ...
NodeJS Server 进程自动重启
每一个JS框架中都首先包含一些工具函数,为框架代码打下基础:
jQuery工具函数挺多的,下面列出主要部分,其实有很多是可以在项目中用到的,标注* 号的暂未支持:
noConflict
ready(* )(抽取了Callback出来后,这里需要进行相应的调整)
isFunction
isArray
isWindow
isNumeric(这个非常有意思,判断的比较全面!isNaN( parseFloat(obj) ) && isFinite( obj );)
type
isPlainObject(测试对象是否是纯粹的对象(通过 "{}" 或者 "new Object" 创建的)。可以用于区别new Object() new Array()等对象,它们的typeof 也是Object)
isEmptyObject
error(抛出一个异常信息)
parseJSON
parseXML
noop(空操作)
nodeName
each
trim
// 数组的操作
makeArray
inArray
merge
grep
map
//
proxy
access
// 当前时间获取函数,可以有效减少代码量
now()
jQuery工具函数挺多的,下面列出主要部分,其实有很多是可以在项目中用到的,标注* 号的暂未支持:
noConflict
ready(* )(抽取了Callback出来后,这里需要进行相应的调整)
isFunction
isArray
isWindow
isNumeric(这个非常有意思,判断的比较全面!isNaN( parseFloat(obj) ) && isFinite( obj );)
type
isPlainObject(测试对象是否是纯粹的对象(通过 "{}" 或者 "new Object" 创建的)。可以用于区别new Object() new Array()等对象,它们的typeof 也是Object)
isEmptyObject
error(抛出一个异常信息)
parseJSON
parseXML
noop(空操作)
nodeName
each
trim
// 数组的操作
makeArray
inArray
merge
grep
map
//
proxy
access
// 当前时间获取函数,可以有效减少代码量
now()
// jQuery.extend方法定义了一个向fn扩展属性及方法的接口,后续jQuery对象的扩展都基于此函数 jQuery.extend = jQuery.fn.extend = function() { var options, name, src, copy, copyIsArray, clone, target = arguments[0] || {}, i = 1, length = arguments.length, deep = false; // Handle a deep copy situation if ( typeof target === "boolean" ) { deep = target; target = arguments[1] || {}; // skip the boolean and the target i = 2; } // Handle case when target is a string or something (possible in deep copy) if ( typeof target !== "object" && !jQuery.isFunction(target) ) { target = {}; } // extend jQuery itself if only one argument is passed if ( length === i ) { target = this; --i; } for ( ; i < length; i++ ) { // Only deal with non-null/undefined values if ( (options = arguments[ i ]) != null ) { // Extend the base object for ( name in options ) { src = target[ name ]; copy = options[ name ]; // Prevent never-ending loop if ( target === copy ) { continue; } // Recurse if we're merging plain objects or arrays if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { if ( copyIsArray ) { copyIsArray = false; clone = src && jQuery.isArray(src) ? src : []; } else { clone = src && jQuery.isPlainObject(src) ? src : {}; } // Never move original objects, clone them target[ name ] = jQuery.extend( deep, clone, copy ); // Don't bring in undefined values } else if ( copy !== undefined ) { target[ name ] = copy; } } } } // Return the modified object return target; }; jQuery.extend({ noConflict: function( deep ) { if ( window.$ === jQuery ) { window.$ = _$; } if ( deep && window.jQuery === jQuery ) { window.jQuery = _jQuery; } return jQuery; }, // Is the DOM ready to be used? Set to true once it occurs. isReady: false, // A counter to track how many items to wait for before // the ready event fires. See #6781 readyWait: 1, // Hold (or release) the ready event holdReady: function( hold ) { if ( hold ) { jQuery.readyWait++; } else { jQuery.ready( true ); } }, // Handle when the DOM is ready ready: function( wait ) { // Either a released hold or an DOMready/load event and not yet ready if ( (wait === true && !--jQuery.readyWait) || (wait !== true && !jQuery.isReady) ) { // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). if ( !document.body ) { return setTimeout( jQuery.ready, 1 ); } // Remember that the DOM is ready jQuery.isReady = true; // If a normal DOM Ready event fired, decrement, and wait if need be if ( wait !== true && --jQuery.readyWait > 0 ) { return; } // If there are functions bound, to execute readyList.fireWith( document, [ jQuery ] ); // Trigger any bound ready events if ( jQuery.fn.trigger ) { jQuery( document ).trigger( "ready" ).off( "ready" ); } } }, bindReady: function() { if ( readyList ) { return; } readyList = jQuery.Callbacks( "once memory" ); // Catch cases where $(document).ready() is called after the // browser event has already occurred. if ( document.readyState === "complete" ) { // Handle it asynchronously to allow scripts the opportunity to delay ready return setTimeout( jQuery.ready, 1 ); } // Mozilla, Opera and webkit nightlies currently support this event if ( document.addEventListener ) { // Use the handy event callback document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false ); // A fallback to window.onload, that will always work window.addEventListener( "load", jQuery.ready, false ); // If IE event model is used } else if ( document.attachEvent ) { // ensure firing before onload, // maybe late but safe also for iframes document.attachEvent( "onreadystatechange", DOMContentLoaded ); // A fallback to window.onload, that will always work window.attachEvent( "onload", jQuery.ready ); // If IE and not a frame // continually check to see if the document is ready var toplevel = false; try { toplevel = window.frameElement == null; } catch(e) {} if ( document.documentElement.doScroll && toplevel ) { doScrollCheck(); } } }, // See test/unit/core.js for details concerning isFunction. // Since version 1.3, DOM methods and functions like alert // aren't supported. They return false on IE (#2968). isFunction: function( obj ) { return jQuery.type(obj) === "function"; }, isArray: Array.isArray || function( obj ) { return jQuery.type(obj) === "array"; }, isWindow: function( obj ) { return obj != null && obj == obj.window; }, isNumeric: function( obj ) { return !isNaN( parseFloat(obj) ) && isFinite( obj ); }, type: function( obj ) { return obj == null ? String( obj ) : class2type[ toString.call(obj) ] || "object"; }, isPlainObject: function( obj ) { // Must be an Object. // Because of IE, we also have to check the presence of the constructor property. // Make sure that DOM nodes and window objects don't pass through, as well if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { return false; } try { // Not own constructor property must be Object if ( obj.constructor && !hasOwn.call(obj, "constructor") && !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { return false; } } catch ( e ) { // IE8,9 Will throw exceptions on certain host objects #9897 return false; } // Own properties are enumerated firstly, so to speed up, // if last one is own, then all properties are own. var key; for ( key in obj ) {} return key === undefined || hasOwn.call( obj, key ); }, isEmptyObject: function( obj ) { for ( var name in obj ) { return false; } return true; }, error: function( msg ) { throw new Error( msg ); }, parseJSON: function( data ) { if ( typeof data !== "string" || !data ) { return null; } // Make sure leading/trailing whitespace is removed (IE can't handle it) data = jQuery.trim( data ); // Attempt to parse using the native JSON parser first if ( window.JSON && window.JSON.parse ) { return window.JSON.parse( data ); } // Make sure the incoming data is actual JSON // Logic borrowed from http://json.org/json2.js if ( rvalidchars.test( data.replace( rvalidescape, "@" ) .replace( rvalidtokens, "]" ) .replace( rvalidbraces, "")) ) { return ( new Function( "return " + data ) )(); } jQuery.error( "Invalid JSON: " + data ); }, // Cross-browser xml parsing parseXML: function( data ) { if ( typeof data !== "string" || !data ) { return null; } var xml, tmp; try { if ( window.DOMParser ) { // Standard tmp = new DOMParser(); xml = tmp.parseFromString( data , "text/xml" ); } else { // IE xml = new ActiveXObject( "Microsoft.XMLDOM" ); xml.async = "false"; xml.loadXML( data ); } } catch( e ) { xml = undefined; } if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) { jQuery.error( "Invalid XML: " + data ); } return xml; }, noop: function() {}, // Evaluates a script in a global context // Workarounds based on findings by Jim Driscoll // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context globalEval: function( data ) { if ( data && rnotwhite.test( data ) ) { // We use execScript on Internet Explorer // We use an anonymous function so that context is window // rather than jQuery in Firefox ( window.execScript || function( data ) { window[ "eval" ].call( window, data ); } )( data ); } }, // Convert dashed to camelCase; used by the css and data modules // Microsoft forgot to hump their vendor prefix (#9572) camelCase: function( string ) { return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); }, nodeName: function( elem, name ) { return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase(); }, // args is for internal usage only each: function( object, callback, args ) { var name, i = 0, length = object.length, isObj = length === undefined || jQuery.isFunction( object ); if ( args ) { if ( isObj ) { for ( name in object ) { if ( callback.apply( object[ name ], args ) === false ) { break; } } } else { for ( ; i < length; ) { if ( callback.apply( object[ i++ ], args ) === false ) { break; } } } // A special, fast, case for the most common use of each } else { if ( isObj ) { for ( name in object ) { if ( callback.call( object[ name ], name, object[ name ] ) === false ) { break; } } } else { for ( ; i < length; ) { if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) { break; } } } } return object; }, // Use native String.trim function wherever possible trim: trim ? function( text ) { return text == null ? "" : trim.call( text ); } : // Otherwise use our own trimming functionality function( text ) { return text == null ? "" : text.toString().replace( trimLeft, "" ).replace( trimRight, "" ); }, // results is for internal usage only makeArray: function( array, results ) { var ret = results || []; if ( array != null ) { // The window, strings (and functions) also have 'length' // Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930 var type = jQuery.type( array ); if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) { push.call( ret, array ); } else { jQuery.merge( ret, array ); } } return ret; }, inArray: function( elem, array, i ) { var len; if ( array ) { if ( indexOf ) { return indexOf.call( array, elem, i ); } len = array.length; i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0; for ( ; i < len; i++ ) { // Skip accessing in sparse arrays if ( i in array && array[ i ] === elem ) { return i; } } } return -1; }, merge: function( first, second ) { var i = first.length, j = 0; if ( typeof second.length === "number" ) { for ( var l = second.length; j < l; j++ ) { first[ i++ ] = second[ j ]; } } else { while ( second[j] !== undefined ) { first[ i++ ] = second[ j++ ]; } } first.length = i; return first; }, grep: function( elems, callback, inv ) { var ret = [], retVal; inv = !!inv; // Go through the array, only saving the items // that pass the validator function for ( var i = 0, length = elems.length; i < length; i++ ) { retVal = !!callback( elems[ i ], i ); if ( inv !== retVal ) { ret.push( elems[ i ] ); } } return ret; }, // arg is for internal usage only map: function( elems, callback, arg ) { var value, key, ret = [], i = 0, length = elems.length, // jquery objects are treated as arrays isArray = elems instanceof jQuery || length !== undefined && typeof length === "number" && ( ( length > 0 && elems[ 0 ] && elems[ length -1 ] ) || length === 0 || jQuery.isArray( elems ) ) ; // Go through the array, translating each of the items to their if ( isArray ) { for ( ; i < length; i++ ) { value = callback( elems[ i ], i, arg ); if ( value != null ) { ret[ ret.length ] = value; } } // Go through every key on the object, } else { for ( key in elems ) { value = callback( elems[ key ], key, arg ); if ( value != null ) { ret[ ret.length ] = value; } } } // Flatten any nested arrays return ret.concat.apply( [], ret ); }, // A global GUID counter for objects guid: 1, // Bind a function to a context, optionally partially applying any // arguments. proxy: function( fn, context ) { if ( typeof context === "string" ) { var tmp = fn[ context ]; context = fn; fn = tmp; } // Quick check to determine if target is callable, in the spec // this throws a TypeError, but we will just return undefined. if ( !jQuery.isFunction( fn ) ) { return undefined; } // Simulated bind var args = slice.call( arguments, 2 ), proxy = function() { return fn.apply( context, args.concat( slice.call( arguments ) ) ); }; // Set the guid of unique handler to the same of original handler, so it can be removed proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++; return proxy; }, // Mutifunctional method to get and set values to a collection // The value/s can optionally be executed if it's a function access: function( elems, fn, key, value, chainable, emptyGet, pass ) { var exec, bulk = key == null, i = 0, length = elems.length; // Sets many values if ( key && typeof key === "object" ) { for ( i in key ) { jQuery.access( elems, fn, i, key[i], 1, emptyGet, value ); } chainable = 1; // Sets one value } else if ( value !== undefined ) { // Optionally, function values get executed if exec is true exec = pass === undefined && jQuery.isFunction( value ); if ( bulk ) { // Bulk operations only iterate when executing function values if ( exec ) { exec = fn; fn = function( elem, key, value ) { return exec.call( jQuery( elem ), value ); }; // Otherwise they run against the entire set } else { fn.call( elems, value ); fn = null; } } if ( fn ) { for (; i < length; i++ ) { fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass ); } } chainable = 1; } return chainable ? elems : // Gets bulk ? fn.call( elems ) : length ? fn( elems[0], key ) : emptyGet; }, now: function() { return ( new Date() ).getTime(); }, // Use of jQuery.browser is frowned upon. // More details: http://docs.jquery.com/Utilities/jQuery.browser uaMatch: function( ua ) { ua = ua.toLowerCase(); var match = rwebkit.exec( ua ) || ropera.exec( ua ) || rmsie.exec( ua ) || ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) || []; return { browser: match[1] || "", version: match[2] || "0" }; }, sub: function() { function jQuerySub( selector, context ) { return new jQuerySub.fn.init( selector, context ); } jQuery.extend( true, jQuerySub, this ); jQuerySub.superclass = this; jQuerySub.fn = jQuerySub.prototype = this(); jQuerySub.fn.constructor = jQuerySub; jQuerySub.sub = this.sub; jQuerySub.fn.init = function init( selector, context ) { if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) { context = jQuerySub( context ); } return jQuery.fn.init.call( this, selector, context, rootjQuerySub ); }; jQuerySub.fn.init.prototype = jQuerySub.fn; var rootjQuerySub = jQuerySub(document); return jQuerySub; }, browser: {} });
发表评论
-
jQuery链式操作实现原理 (Array-Like Object)
2012-05-07 01:13 2806jQuery链式代码风格:jQuery(“#one_div”) ... -
jQuery中的traversing查找及遍历
2012-04-19 00:21 1777jQuery提供了一整套非常好用的遍历Dom树节点的API,下 ... -
对于jQuery中的queue和data的理解
2012-04-05 00:37 0现在还有几个大块:event,attr,css,ajax ... -
jQuery中的support对象
2012-08-29 13:27 1626jQuery.support是为了替换jQuery.brows ... -
jQuery1.7中的Callbacks
2012-03-30 01:35 2638严格来讲,jQuery的Callback对象只是对于回调的一种 ... -
jQuery的各种分支及如何做符合自己的前端框架
2012-03-28 01:50 2531话说现在已经是知识大爆炸的年代,不管你想到什么 ... -
Moving Items(jQuery扩展)
2010-11-16 20:27 1321列表移动例子,对比过网上的很多实例,当前组件突 ...
相关推荐
这个“jQuery随机抽取数字号代码.zip”文件显然包含了一个使用jQuery实现的数字抽奖功能,这在各种活动中常见,如网络抽奖、线上会议编号选取等场景。下面将详细解释这一功能的实现原理及其相关知识点。 首先,我们...
在这个“jQuery在设定范围随机抽取数字”的主题中,我们将深入探讨如何利用jQuery来生成指定范围内的随机数。 首先,我们需要明白的是,尽管jQuery库本身并不直接提供生成随机数的功能,但我们可以通过JavaScript的...
在这个特定的场景中,"jQuery在设定范围随机抽取数字代码"指的是利用jQuery来实现一个功能,即在用户指定的范围内生成随机数字,并在网页上展示这一效果。这个功能常见于抽奖系统或随机选号应用中,用户可以设置一个...
在这个项目中,jQuery被用来处理DOM操作、事件绑定以及可能的动画效果。 **HTML结构**: `index.html`文件是整个页面的基础,包含了HTML标记语言,用于构建网页的结构。在这个音乐试题中,HTML可能会包含问题的容器...
在这个项目中,jQuery用于动态更新页面内容,实现文字的随机抽取,并处理用户的交互。 2. **DOM操作**:DOM(Document Object Model)是HTML和XML文档的结构表示。jQuery提供了方便的方法来选择、修改和操作DOM元素...
在这个"jQuery在设定范围随机抽取数字代码.zip"压缩包中,我们很显然关注的是一个使用jQuery实现的功能,即在指定范围内生成随机数。这个功能可能对于抽奖系统、模拟随机行为或者任何需要随机数据的场景都十分有用。...
2. **随机抽取**:使用jQuery的`Math.random()`函数结合数组索引来随机选择一个问题。例如: ```javascript var questions = data.questions; var randomIndex = Math.floor(Math.random() * questions.length); ...
在"jQuery随机抽取数字号代码"这个例子中,主要涉及以下几个技术点: 1. **事件绑定**:`jQuery`提供`.click()`方法来监听用户的点击事件。在这个场景下,我们可以为一个"开始"按钮添加点击事件,当用户点击时触发...
本文将详细解析"jQuery随机抽取数字号代码"这一主题,包括其核心功能、实现原理以及如何使用。 首先,让我们理解随机抽取数字号的基本概念。在编程中,生成随机数是一项常见任务,这通常通过使用随机数生成器函数来...
})` 这段代码表示当id为"startButton"的元素被点击时,执行函数中的代码,即进行抽奖操作。 三、jQuery与JavaScript库的整合 在项目中,我们看到有一个名为"jquery.js"的文件,这是jQuery的核心库。引入这个库后,...
在这个文件中,开发者可能会定义以下函数来实现抽奖逻辑: 1. **初始化函数**:页面加载完成后执行,用于设置初始状态,如隐藏或显示数字容器,禁用或启用抽奖按钮。 2. **抽奖函数**:当用户点击按钮时触发,其...
总结来说,这个"jQuery姓名电话随机抽奖代码"压缩包包含了一个利用jQuery和JavaScript实现的抽奖程序,它可以随机从预设的姓名和电话号码列表中抽取幸运者,并在网页上动态展示结果。通过学习和理解这段代码,开发者...
在这个项目中,用户输入姓名和电话号码后,系统会进行随机抽取,展示出获奖者的信息。这个功能在各种线上线下活动中常见,如商场促销、网络竞赛等,能有效吸引用户的参与度和提高活动的趣味性。 jQuery是一个轻量级...
4. **Ajax交互**:如果需要从服务器获取或提交数据(比如用户输入或奖项设置),jQuery的Ajax功能可以轻松实现异步通信。`.ajax()`或`.getJSON()`等方法可以实现数据的无刷新传递。 在实现过程中,开发者可能需要...
在计算机编程领域,框架(Framework)是一个被广泛使用的重要概念。框架本质上是整个或部分系统的可重用设计,它表现为一组抽象构件及构件...尽管如此,jQuery仍然是很多现有项目和开发者工具箱中的一个重要组成部分。
在jQuery中,可以使用`setInterval`函数每隔一定时间更新DOM元素,显示剩余时间。同时,当倒计时结束时,触发抽奖事件。 3. **随机数生成**:在倒计时结束后,程序需要随机选择一个中奖者。JavaScript提供了`Math....
在`js`文件夹中的主要JavaScript代码中,我们可以预期会找到一个函数或类,负责处理随机抽取名字的过程。这个功能可能会涉及到数组操作,比如将所有候选人名字存储在一个数组中,然后使用Math.random()函数生成一个...
为了确保公平性,通常会避免重复抽取同一个名字,这可能需要用到`splice()`方法从参与者名单中移除已选中的名字。此外,为了实现动画效果,jQuery的`.animate()`或`.fadeIn()/.fadeOut()`等方法会被用到,使得中奖...
在IT行业中,jQuery作为一个强大的JavaScript库,因其简洁易用的API和丰富的插件库,深受开发者喜爱。在年会抽奖环节,利用jQuery来实现互动性强、视觉效果出色的抽奖功能,已经成为许多公司年会的首选。本文将深入...
在JavaScript中,可以使用`Math.random()`函数生成一个介于0(包含)和1(不包含)之间的随机数,然后通过适当的方法将其转换为一个有效的手机号码索引。 2. **手机号码处理**:在实际应用中,手机号码通常被视为...