jQuery 1.0.4 - New Wave Javascript(js源文件)

2016-02-19 11:00 22 1 收藏

关注图老师设计创意栏目可以让大家能更好的了解电脑,知道有关于电脑的更多有趣教程,今天给大家分享jQuery 1.0.4 - New Wave Javascript(js源文件)教程,希望对大家能有一点小小的帮助。

【 tulaoshi.com - Web开发 】

代码如下:

/* prevent execution of jQuery if included more then once */
if(typeof window.jQuery == "undefined") {
/*
 * jQuery 1.0.4 - New Wave Javascript
 *
 * Copyright (c) 2006 John Resig (jquery.com)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * $Date: 2006-12-12 15:33:10 -0500 (Tue, 12 Dec 2006) $
 * $Rev: 696 $
 */

// Global undefined variable
window.undefined = window.undefined;

var jQuery = function(a,c) {

    // Shortcut for document ready
    if ( a && typeof a == "function" && jQuery.fn.ready && !a.nodeType && a[0] == undefined ) // Safari reports typeof on DOM NodeLists as a function
        return jQuery(document).ready(a);

    // Make sure that a selection was provided
    a = a || document;

    // Watch for when a jQuery object is passed as the selector
    if ( a.jquery )
        return jQuery( jQuery.merge( a, [] ) );

    // Watch for when a jQuery object is passed at the context
    if ( c && c.jquery )
        return jQuery( c ).find(a);

    // If the context is global, return a new object
    if ( window == this )
        return new jQuery(a,c);

    // Handle HTML strings
    if ( typeof a  == "string" ) {
        var m = /^[^]*(.+)[^]*$/.exec(a);
        if ( m ) a = jQuery.clean( [ m[1] ] );
    }

    // Watch for when an array is passed in
    this.set( a.constructor == Array || a.length && a != window && !a.nodeType && a[0] != undefined && a[0].nodeType ?
        // Assume that it is an array of DOM Elements
        jQuery.merge( a, [] ) :

        // Find the matching elements and save them for later
        jQuery.find( a, c ) );

    // See if an extra function was provided
    var fn = arguments[ arguments.length - 1 ];

    // If so, execute it in context
    if ( fn && typeof fn == "function" )
        this.each(fn);

    return this;
};

// Map over the $ in case of overwrite
if ( typeof $ != "undefined" )
    jQuery._$ = $;

// Map the jQuery namespace to the '$' one
var $ = jQuery;



jQuery.fn = jQuery.prototype = {

    jquery: "1.0.4",


    size: function() {
        return this.length;
    },


    get: function( num ) {
        return num == undefined ?

            // Return a 'clean' array
            jQuery.merge( this, [] ) :

            // Return just the object
            this[num];
    },

    set: function( array ) {
        // Use a tricky hack to make the jQuery object
        // look and feel like an array
        this.length = 0;
        [].push.apply( this, array );
        return this;
    },

    each: function( fn, args ) {
        return jQuery.each( this, fn, args );
    },

    index: function( obj ) {
        var pos = -1;
        this.each(function(i){
            if ( this == obj ) pos = i;
        });
        return pos;
    },


    attr: function( key, value, type ) {
        // Check to see if we're setting style values
        return key.constructor != String || value != undefined ?
            this.each(function(){
                // See if we're setting a hash of styles
                if ( value == undefined )
                    // Set all the styles
                    for ( var prop in key )
                        jQuery.attr(
                            type ? this.style : this,
                            prop, key[prop]
                        );

                // See if we're setting a single key/value style
                else
                    jQuery.attr(
                        type ? this.style : this,
                        key, value
                    );
            }) :

            // Look for the case where we're accessing a style value
            jQuery[ type || "attr" ]( this[0], key );
    },


    css: function( key, value ) {
        return this.attr( key, value, "curCSS" );
    },

    text: function(e) {
        e = e || this;
        var t = "";
        for ( var j = 0; j  e.length; j++ ) {
            var r = e[j].childNodes;
            for ( var i = 0; i  r.length; i++ )
                if ( r[i].nodeType != 8 )
                    t += r[i].nodeType != 1 ?
                        r[i].nodeValue : jQuery.fn.text([ r[i] ]);
        }
        return t;
    },


    wrap: function() {
        // The elements to wrap the target around
        var a = jQuery.clean(arguments);

        // Wrap each of the matched elements individually
        return this.each(function(){
            // Clone the structure that we're using to wrap
            var b = a[0].cloneNode(true);

            // Insert it before the element to be wrapped
            this.parentNode.insertBefore( b, this );

            // Find the deepest point in the wrap structure
            while ( b.firstChild )
                b = b.firstChild;

            // Move the matched element to within the wrap structure
            b.appendChild( this );
        });
    },


    append: function() {
        return this.domManip(arguments, true, 1, function(a){
            this.appendChild( a );
        });
    },


    prepend: function() {
        return this.domManip(arguments, true, -1, function(a){
            this.insertBefore( a, this.firstChild );
        });
    },


    before: function() {
        return this.domManip(arguments, false, 1, function(a){
            this.parentNode.insertBefore( a, this );
        });
    },


    after: function() {
        return this.domManip(arguments, false, -1, function(a){
            this.parentNode.insertBefore( a, this.nextSibling );
        });
    },

    end: function() {
        if( !(this.stack && this.stack.length) )
            return this;
        return this.set( this.stack.pop() );
    },

    find: function(t) {
        return this.pushStack( jQuery.map( this, function(a){
            return jQuery.find(t,a);
        }), arguments );
    },

    clone: function(deep) {
        return this.pushStack( jQuery.map( this, function(a){
            return a.cloneNode( deep != undefined ? deep : true );
        }), arguments );
    },


    filter: function(t) {
        return this.pushStack(
            t.constructor == Array &&
            jQuery.map(this,function(a){
                for ( var i = 0; i  t.length; i++ )
                    if ( jQuery.filter(t[i],[a]).r.length )
                        return a;
                return null;
            }) ||

            t.constructor == Boolean &&
            ( t ? this.get() : [] ) ||

            typeof t == "function" &&
            jQuery.grep( this, t ) ||

            jQuery.filter(t,this).r, arguments );
    },


    not: function(t) {
        return this.pushStack( typeof t == "string" ?
            jQuery.filter(t,this,false).r :
            jQuery.grep(this,function(a){ return a != t; }), arguments );
    },


    add: function(t) {
        return this.pushStack( jQuery.merge( this, typeof t == "string" ?
            jQuery.find(t) : t.constructor == Array ? t : [t] ), arguments );
    },

    is: function(expr) {
        return expr ? jQuery.filter(expr,this).r.length  0 : false;
    },

    domManip: function(args, table, dir, fn){
        var clone = this.size()  1;
        var a = jQuery.clean(args);

        return this.each(function(){
            var obj = this;

            if ( table && this.nodeName.toUpperCase() == "TABLE" && a[0].nodeName.toUpperCase() != "THEAD" ) {
                var tbody = this.getElementsByTagName("tbody");

                if ( !tbody.length ) {
                    obj = document.createElement("tbody");
                    this.appendChild( obj );
                } else
                    obj = tbody[0];
            }

            for ( var i = ( dir  0 ? a.length - 1 : 0 );
                i != ( dir  0 ? dir : a.length ); i += dir ) {
                    fn.apply( obj, [ clone ? a[i].cloneNode(true) : a[i] ] );
            }
        });
    },

    pushStack: function(a,args) {
        var fn = args && args[args.length-1];
        var fn2 = args && args[args.length-2];

        if ( fn && fn.constructor != Function ) fn = null;
        if ( fn2 && fn2.constructor != Function ) fn2 = null;

        if ( !fn ) {
            if ( !this.stack ) this.stack = [];
            this.stack.push( this.get() );
            this.set( a );
        } else {
            var old = this.get();
            this.set( a );

            if ( fn2 && a.length || !fn2 )
                this.each( fn2 || fn ).set( old );
            else
                this.set( old ).each( fn );
        }

        return this;
    }
};


jQuery.extend = jQuery.fn.extend = function() {
    // copy reference to target object
    var target = arguments[0],
        a = 1;

    // extend jQuery itself if only one argument is passed
    if ( arguments.length == 1 ) {
        target = this;
        a = 0;
    }
    var prop;
    while (prop = arguments[a++])
        // Extend the base object
        for ( var i in prop ) target[i] = prop[i];

    // Return the modified object
    return target;
};

jQuery.extend({

    init: function(){
        jQuery.initDone = true;

        jQuery.each( jQuery.macros.axis, function(i,n){
            jQuery.fn[ i ] = function(a) {
                var ret = jQuery.map(this,n);
                if ( a && typeof a == "string" )
                    ret = jQuery.filter(a,ret).r;
                return this.pushStack( ret, arguments );
            };
        });

        jQuery.each( jQuery.macros.to, function(i,n){
            jQuery.fn[ i ] = function(){
                var a = arguments;
                return this.each(function(){
                    for ( var j = 0; j  a.length; j++ )
                        jQuery(a[j])[n]( this );
                });
            };
        });

        jQuery.each( jQuery.macros.each, function(i,n){
            jQuery.fn[ i ] = function() {
                return this.each( n, arguments );
            };
        });

        jQuery.each( jQuery.macros.filter, function(i,n){
            jQuery.fn[ n ] = function(num,fn) {
                return this.filter( ":" + n + "(" + num + ")", fn );
            };
        });

        jQuery.each( jQuery.macros.attr, function(i,n){
            n = n || i;
            jQuery.fn[ i ] = function(h) {
                return h == undefined ?
                    this.length ? this[0][n] : null :
                    this.attr( n, h );
            };
        });

        jQuery.each( jQuery.macros.css, function(i,n){
            jQuery.fn[ n ] = function(h) {
                return h == undefined ?
                    ( this.length ? jQuery.css( this[0], n ) : null ) :
                    this.css( n, h );
            };
        });

    },

    // args is for internal usage only
    each: function( obj, fn, args ) {
        if ( obj.length == undefined )
            for ( var i in obj )
                fn.apply( obj[i], args || [i, obj[i]] );
        else
            for ( var i = 0; i  obj.length; i++ )
                if ( fn.apply( obj[i], args || [i, obj[i]] ) === false ) break;
        return obj;
    },

    className: {
        add: function(o,c){
            if (jQuery.className.has(o,c)) return;
            o.className += ( o.className ? " " : "" ) + c;
        },
        remove: function(o,c){
            if( !c ) {
                o.className = "";
            } else {
                var classes = o.className.split(" ");
                for(var i=0; iclasses.length; i++) {
                    if(classes[i] == c) {
                        classes.splice(i, 1);
                        break;
                    }
                }
                o.className = classes.join(' ');
            }
        },
        has: function(e,a) {
            if ( e.className != undefined )
                e = e.className;
            return new RegExp("(^|s)" + a + "(s|$)").test(e);
        }
    },

    swap: function(e,o,f) {
        for ( var i in o ) {
            e.style["old"+i] = e.style[i];
            e.style[i] = o[i];
        }
        f.apply( e, [] );
        for ( var i in o )
            e.style[i] = e.style["old"+i];
    },

    css: function(e,p) {
        if ( p == "height" || p == "width" ) {
            var old = {}, oHeight, oWidth, d = ["Top","Bottom","Right","Left"];

            for ( var i=0; id.length; i++ ) {
                old["padding" + d[i]] = 0;
                old["border" + d[i] + "Width"] = 0;
            }

            jQuery.swap( e, old, function() {
                if (jQuery.css(e,"display") != "none") {
                    oHeight = e.offsetHeight;
                    oWidth = e.offsetWidth;
                } else {
                    e = jQuery(e.cloneNode(true))
                        .find(":radio").removeAttr("checked").end()
                        .css({
                            visibility: "hidden", position: "absolute", display: "block", right: "0", left: "0"
                        }).appendTo(e.parentNode)[0];

                    var parPos = jQuery.css(e.parentNode,"position");
                    if ( parPos == "" || parPos == "static" )
                        e.parentNode.style.position = "relative";

                    oHeight = e.clientHeight;
                    oWidth = e.clientWidth;

                    if ( parPos == "" || parPos == "static" )
                        e.parentNode.style.position = "static";

                    e.parentNode.removeChild(e);
                }
            });

            return p == "height" ? oHeight : oWidth;
        }

        return jQuery.curCSS( e, p );
    },

    curCSS: function(elem, prop, force) {
        var ret;

        if (prop == 'opacity' && jQuery.browser.msie)
            return jQuery.attr(elem.style, 'opacity');

        if (prop == "float" || prop == "cssFloat")
            prop = jQuery.browser.msie ? "styleFloat" : "cssFloat";

        if (!force && elem.style[prop]) {

            ret = elem.style[prop];

        } else if (document.defaultView && document.defaultView.getComputedStyle) {

            if (prop == "cssFloat" || prop == "styleFloat")
                prop = "float";

            prop = prop.replace(/([A-Z])/g,"-$1").toLowerCase();
            var cur = document.defaultView.getComputedStyle(elem, null);

            if ( cur )
                ret = cur.getPropertyValue(prop);
            else if ( prop == 'display' )
                ret = 'none';
            else
                jQuery.swap(elem, { display: 'block' }, function() {
                    var c = document.defaultView.getComputedStyle(this, '');
                    ret = c && c.getPropertyValue(prop) || '';
                });

        } else if (elem.currentStyle) {

            var newProp = prop.replace(/-(w)/g,function(m,c){return c.toUpperCase();});
            ret = elem.currentStyle[prop] || elem.currentStyle[newProp];

        }

        return ret;
    },

    clean: function(a) {
        var r = [];
        for ( var i = 0; i  a.length; i++ ) {
            var arg = a[i];
            if ( typeof arg == "string" ) { // Convert html string into DOM nodes
                // Trim whitespace, otherwise indexOf won't work as expected
                var s = jQuery.trim(arg), div = document.createElement("div"), wrap = [0,"",""];

                if ( !s.indexOf("opt") ) // option or optgroup
                    wrap = [1, "select", "/select"];
                else if ( !s.indexOf("thead") || !s.indexOf("tbody") )
                    wrap = [1, "table", "/table"];
                else if ( !s.indexOf("tr") )
                    wrap = [2, "table", "/table"];    // tbody auto-inserted
                else if ( !s.indexOf("td") || !s.indexOf("th") )
                    wrap = [3, "tabletbodytr", "/tr/tbody/table"];

                // Go to html and back, then peel off extra wrappers
                div.innerHTML = wrap[1] + s + wrap[2];
                while ( wrap[0]-- ) div = div.firstChild;
                arg = div.childNodes;
            } 

            
            if ( arg.length != undefined && ( (jQuery.browser.safari && typeof arg == 'function') || !arg.nodeType ) ) // Safari reports typeof on a DOM NodeList to be a function
                for ( var n = 0; n  arg.length; n++ ) // Handles Array, jQuery, DOM NodeList collections
                    r.push(arg[n]);
            else
                r.push(    arg.nodeType ? arg : document.createTextNode(arg.toString()) );
        }

        return r;
    },

    expr: {
        "": "m[2]== '*'||a.nodeName.toUpperCase()==m[2].toUpperCase()",
        "#": "a.getAttribute('id')&&a.getAttribute('id')==m[2]",
        ":": {
            // Position Checks
            lt: "im[3]-0",
            gt: "im[3]-0",
            nth: "m[3]-0==i",
            eq: "m[3]-0==i",
            first: "i==0",
            last: "i==r.length-1",
            even: "i%2==0",
            odd: "i%2",

            // Child Checks
            "nth-child": "jQuery.sibling(a,m[3]).cur",
            "first-child": "jQuery.sibling(a,0).cur",
            "last-child": "jQuery.sibling(a,0).last",
            "only-child": "jQuery.sibling(a).length==1",

            // Parent Checks
            parent: "a.childNodes.length",
            empty: "!a.childNodes.length",

            // Text Check
            contains: "jQuery.fn.text.apply([a]).indexOf(m[3])=0",

            // Visibility
            visible: "a.type!='hidden'&&jQuery.css(a,'display')!='none'&&jQuery.css(a,'visibility')!='hidden'",
            hidden: "a.type=='hidden'||jQuery.css(a,'display')=='none'||jQuery.css(a,'visibility')=='hidden'",

            // Form attributes
            enabled: "!a.disabled",
            disabled: "a.disabled",
            checked: "a.checked",
            selected: "a.selected || jQuery.attr(a, 'selected')",

            // Form elements
            text: "a.type=='text'",
            radio: "a.type=='radio'",
            checkbox: "a.type=='checkbox'",
            file: "a.type=='file'",
            password: "a.type=='password'",
            submit: "a.type=='submit'",
            image: "a.type=='image'",
            reset: "a.type=='reset'",
            button: "a.type=='button'",
            input: "/input|select|textarea|button/i.test(a.nodeName)"
        },
        ".": "jQuery.className.has(a,m[2])",
        "@": {
            "=": "z==m[4]",
            "!=": "z!=m[4]",
            "^=": "z && !z.indexOf(m[4])",
            "$=": "z && z.substr(z.length - m[4].length,m[4].length)==m[4]",
            "*=": "z && z.indexOf(m[4])=0",
            "": "z"
        },
        "[": "jQuery.find(m[2],a).length"
    },

    token: [
        "..|/..", "a.parentNode",
        "|/", "jQuery.sibling(a.firstChild)",
        "+", "jQuery.sibling(a).next",
        "~", function(a){
            var s = jQuery.sibling(a);
            return s.n = 0 ? s.slice(s.n+1) : [];
        }
    ],

    find: function( t, context ) {
        // Make sure that the context is a DOM Element
        if ( context && context.nodeType == undefined )
            context = null;

        // Set the correct context (if none is provided)
        context = context || document;

        if ( t.constructor != String ) return [t];

        if ( !t.indexOf("//") ) {
            context = context.documentElement;
            t = t.substr(2,t.length);
        } else if ( !t.indexOf("/") ) {
            context = context.documentElement;
            t = t.substr(1,t.length);
            // FIX Assume the root element is right :(
            if ( t.indexOf("/") = 1 )
                t = t.substr(t.indexOf("/"),t.length);
        }

        var ret = [context];
        var done = [];
        var last = null;

        while ( t.length  0 && last != t ) {
            var r = [];
            last = t;

            t = jQuery.trim(t).replace( /^///i, "" );

            var foundToken = false;

            for ( var i = 0; i  jQuery.token.length; i += 2 ) {
                if ( foundToken ) continue;

                var re = new RegExp("^(" + jQuery.token[i] + ")");
                var m = re.exec(t);

                if ( m ) {
                    r = ret = jQuery.map( ret, jQuery.token[i+1] );
                    t = jQuery.trim( t.replace( re, "" ) );
                    foundToken = true;
                }
            }

            if ( !foundToken ) {
                if ( !t.indexOf(",") || !t.indexOf("|") ) {
                    if ( ret[0] == context ) ret.shift();
                    done = jQuery.merge( done, ret );
                    r = ret = [context];
                    t = " " + t.substr(1,t.length);
                } else {
                    var re2 = /^([#.]?)([a-z0-9*_-]*)/i;
                    var m = re2.exec(t);

                    if ( m[1] == "#" ) {
                        // Ummm, should make this work in all XML docs
                        var oid = document.getElementById(m[2]);
                        r = ret = oid ? [oid] : [];
                        t = t.replace( re2, "" );
                    } else {
                        if ( !m[2] || m[1] == "." ) m[2] = "*";

                        for ( var i = 0; i  ret.length; i++ )
                            r = jQuery.merge( r,
                                m[2] == "*" ?
                                    jQuery.getAll(ret[i]) :
                                    ret[i].getElementsByTagName(m[2])
                            );
                    }
                }

            }

            if ( t ) {
                var val = jQuery.filter(t,r);
                ret = r = val.r

来源:http://www.tulaoshi.com/n/20160219/1596316.html

延伸阅读
标签: Web开发
简化后的插件: SimplePlugin.htm: 代码如下: !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" html xmlns="http://www.w3.org/1999/xhtml" head title简化后的插件/title script type="text/ecmascript" src="../js/jquery-1.2.6.js"/script script ty...
VB提供的方法使我们可以很容易地使用资源文件中的字符、图片等资源。我们可以用以下方法播放资源文件中的wav声音:首先,在你的资源文件的源文件(RC)文件加入下面一行: MySoundWAVEc:musicvanhalen.wav 然后将其编译为RES文件。最后使用下面的声明及代码: PrivateDeclareFunctionPlaySoundLib_"winmm.dll"Alias"PlaySoundA"(...
标签: Web开发
我们能用查看源文件这个办法来教会你所有关于HTML需要知道的一切.这是最初的一步,也许有人会反对这种说法,而最后一步,就是需要学习如何在网上发布,这样才能让你制作的网页让大家看到。 与其他图片、动画文件或者各种各样的产品不同,所有的网页都能从html的源文件中看到起制作的本来面目,并告诉愿意了解的网友,站点是如何建成的...
标签: Web开发
重新载入javascript文件的方法(给js定个id),自己封装成一个方法方便大家使用: function reloadAbleJSFn(id,newJS) { var oldjs = null; var t = null; var oldjs = document.getElementById(id); if(oldjs) oldjs.parentNode.removeChild(oldjs); var scriptObj = document.createElement("script"); scriptObj.src = newJS; scriptObj...

经验教程

474

收藏

30
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部