X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fjquery%2Fjquery.js;h=9b5bf8d444600874d315a30b99266b95c081eac2;hb=770a92a594a803486a66603a67f559ff15915d8b;hp=3edc3033354fa27c408a18c71bb12f13c9c364db;hpb=eff56887b164b489bb792f87770b7ba69e8f54df;p=jquery.git diff --git a/src/jquery/jquery.js b/src/jquery/jquery.js index 3edc303..9b5bf8d 100644 --- a/src/jquery/jquery.js +++ b/src/jquery/jquery.js @@ -28,7 +28,7 @@ window.undefined = window.undefined; * @name jQuery * @cat Core */ -function jQuery(a,c) { +jQuery = function(a,c) { // Shortcut for document ready (because $(document).each() is silly) if ( a && a.constructor == Function && jQuery.fn.ready ) @@ -67,7 +67,7 @@ function jQuery(a,c) { // If so, execute it in context if ( fn && fn.constructor == Function ) this.each(fn); -} +}; // Map over the $ in case of overwrite if ( typeof $ != "undefined" ) @@ -384,6 +384,14 @@ jQuery.fn = jQuery.prototype = { * @test ok( $('#text1').attr('type') == "text", 'Check for type attribute' ); * @test ok( $('#radio1').attr('type') == "radio", 'Check for type attribute' ); * @test ok( $('#check1').attr('type') == "checkbox", 'Check for type attribute' ); + * @test ok( $('#simon1').attr('rel') == "bookmark", 'Check for rel attribute' ); + * @test ok( $('#google').attr('title') == "Google!", 'Check for title attribute' ); + * @test ok( $('#mark').attr('hreflang') == "en", 'Check for hreflang attribute' ); + * @test ok( $('#en').attr('lang') == "en", 'Check for lang attribute' ); + * @test ok( $('#simon').attr('class') == "blog link", 'Check for class attribute' ); + * @test ok( $('#name').attr('name') == "name", 'Check for name attribute' ); + * @test ok( $('#text1').attr('name') == "action", 'Check for name attribute' ); + * @test ok( $('#form').attr('action') == "formaction", 'Check for action attribute' ); * * @name attr * @type Object @@ -427,6 +435,13 @@ jQuery.fn = jQuery.prototype = { * } * ok( pass, "Set Attribute" ); * + * @test $("#name").attr('name', 'something'); + * ok( $("#name").name() == 'something', 'Set name attribute' ); + * @test $("#check2").attr('checked', true); + * ok( document.getElementById('check2').checked == true, 'Set checked attribute' ); + * $("#check2").attr('checked', false); + * ok( document.getElementById('check2').checked == false, 'Set checked attribute' ); + * * @name attr * @type jQuery * @param String key The name of the property to set. @@ -954,6 +969,8 @@ jQuery.fn = jQuery.prototype = { * @before

Hello

How are you?

* @result $("p").filter(".selected") == [

Hello

] * + * @test isSet( $("input").filter(":checked").get(), q("radio2", "check1"), "Filter elements" ); + * * @name filter * @type jQuery * @param String expr An expression to search with. @@ -1580,7 +1597,7 @@ jQuery.extend({ * @test t( "Last Child", "p:last-child", ["sap"] ); * @test t( "Only Child", "a:only-child", ["simon1","anchor1","yahoo","anchor2"] ); * @test t( "Empty", "ul:empty", ["firstUL"] ); - * @test t( "Enabled UI Element", "input:enabled", ["text1","radio1","radio2","check1","check2","hidden1","hidden2"] ); + * @test t( "Enabled UI Element", "input:enabled", ["text1","radio1","radio2","check1","check2","hidden1","hidden2","name"] ); * @test t( "Disabled UI Element", "input:disabled", ["text2"] ); * @test t( "Checked UI Element", "input:checked", ["radio2","check1"] ); * @test t( "Selected Option Element", "option:selected", ["option1a","option2d","option3b","option3c"] ); @@ -1613,9 +1630,14 @@ jQuery.extend({ * @test t( "Position Greater Than", "p:gt(0)", ["ap","sndp","en","sap","first"] ); * @test t( "Position Less Than", "p:lt(3)", ["firstp","ap","sndp"] ); * @test t( "Is A Parent", "p:parent", ["firstp","ap","sndp","en","sap","first"] ); - * @test t( "Is Visible", "input:visible", ["text1","text2","radio1","radio2","check1","check2"] ); + * @test t( "Is Visible", "input:visible", ["text1","text2","radio1","radio2","check1","check2","name"] ); * @test t( "Is Hidden", "input:hidden", ["hidden1","hidden2"] ); * + * @test t( "Grouped Form Elements", "input[@name='foo[bar]']", ["hidden2"] ); + * + * @test t( "All Children of ID", "#foo/*", ["sndp", "en", "sap"] ); + * @test t( "All Children of ID with no children", "#firstUL/*", [] ); + * * @name $.find * @type Array * @private @@ -1735,7 +1757,7 @@ jQuery.extend({ if ( fix[name] ) { if ( value != undefined ) elem[fix[name]] = value; return elem[fix[name]]; - } else if ( elem.getAttribute ) { + } else if ( elem.getAttribute != undefined ) { if ( value != undefined ) elem.setAttribute( name, value ); return elem.getAttribute( name, 2 ); } else { @@ -2109,8 +2131,11 @@ jQuery.extend({ var c = this.events[event.type]; + var args = [].slice.call( arguments, 1 ); + args.unshift( event ); + for ( var j in c ) { - if ( c[j].apply( this, [event] ) === false ) { + if ( c[j].apply( this, args ) === false ) { event.preventDefault(); event.stopPropagation(); returnValue = false; @@ -2901,6 +2926,8 @@ jQuery.macros = { * @before

Hello

Hello Again

And Again

* @result [

Hello

,

And Again

] * + * @test isSet( $("#en").siblings().get(), q("sndp", "sap"), "Check for siblings" ); + * * @name siblings * @type jQuery * @cat DOM/Traversing @@ -2914,6 +2941,9 @@ jQuery.macros = { * @before
Hello

Hello Again

And Again

* @result [

Hello Again

] * + * @test isSet( $("#sndp").siblings("[code]").get(), q("sap"), "Check for filtered siblings (has code child element)" ); + * @test isSet( $("#sndp").siblings("[a]").get(), q("en", "sap"), "Check for filtered siblings (has anchor child element)" ); + * * @name siblings * @type jQuery * @param String expr An expression to filter the sibling Elements with @@ -3147,24 +3177,31 @@ jQuery.macros = { }, /** - * Binds a particular event (like click) to a each of a set of match elements. - * - * @example $("p").bind( "click", function() { alert("Hello"); } ) + * Binds a handler to a particular event (like click) for each matched element. + * The event handler is passed an event object that you can use to prevent + * default behaviour. To stop both default action and event bubbling, your handler + * has to return false. + * + * @example $("p").bind( "click", function() { + * alert( $(this).text() ); + * } ) * @before

Hello

- * @result [

Hello

] - * - * Cancel a default action and prevent it from bubbling by returning false - * from your function. + * @result alert("Hello") * * @example $("form").bind( "submit", function() { return false; } ) + * @desc Cancel a default action and prevent it from bubbling by returning false + * from your function. * - * Cancel a default action by using the preventDefault method. - * - * @example $("form").bind( "submit", function() { e.preventDefault(); } ) + * @example $("form").bind( "submit", function(event) { + * event.preventDefault(); + * } ); + * @desc Cancel only the default action by using the preventDefault method. * - * Stop an event from bubbling by using the stopPropogation method. * - * @example $("form").bind( "submit", function() { e.stopPropogation(); } ) + * @example $("form").bind( "submit", function(event) { + * event.stopPropagation(); + * } ) + * @desc Stop only an event from bubbling by using the stopPropagation method. * * @name bind * @type jQuery