From 3d334ad8066f040e4878be45d8230a599176351b Mon Sep 17 00:00:00 2001 From: John Resig Date: Thu, 13 Jul 2006 19:53:04 +0000 Subject: [PATCH] Added a fix for the context of events. --- jquery/jquery.js | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/jquery/jquery.js b/jquery/jquery.js index 4f01825..e54f468 100644 --- a/jquery/jquery.js +++ b/jquery/jquery.js @@ -19,8 +19,8 @@ window.undefined = window.undefined; function jQuery(a,c) { // Shortcut for document ready (because $(document).each() is silly) - if ( a && a.constructor == Function ) - return $(document).ready(a); + if ( a && a.constructor == Function && jQuery.fn.ready ) + return jQuery(document).ready(a); // Make sure t hat a selection was provided a = a || jQuery.context || document; @@ -49,7 +49,7 @@ function jQuery(a,c) { // Watch for when a jQuery object is passed at the context if ( c && c.jquery ) - return $(c.get()).find(a); + return jQuery(c.get()).find(a); // If the context is global, return a new object if ( window == this ) @@ -152,7 +152,7 @@ jQuery.fn = jQuery.prototype = { get: function( num ) { // Watch for when an array (of elements) is passed in if ( num && num.constructor == Array ) { - + // Use a tricky hack to make the jQuery object // look and feel like an array this.length = 0; @@ -187,12 +187,12 @@ jQuery.fn = jQuery.prototype = { * @type jQuery * @param Function fn A function to execute */ - each: function( fn ) { + each: function( fn, args ) { // Iterate through all of the matched elements for ( var i = 0; i < this.length; i++ ) // Execute the function within the context of each element - fn.apply( this[i], [i] ); + fn.apply( this[i], args || [i] ); return this; }, @@ -936,12 +936,9 @@ new function() { for ( var i in each ) new function() { var n = each[i]; jQuery.fn[ i ] = function() { - var args = arguments; - return this.each(function(){ - n.apply( this, args ); - }); + return this.each( n, arguments ); }; - } + }; var attr = { val: "value", @@ -1519,7 +1516,7 @@ jQuery.extend({ if (element["on" + type]) handlers[0] = element["on" + type]; } - + // Add the function to the element's handler list handlers[handler.guid] = handler; @@ -1577,9 +1574,11 @@ jQuery.extend({ if ( !event ) return; var returnValue = true; + + var c = this.events[event.type]; - for ( var j in this.events[event.type] ) { - if (this.events[event.type][j](event) === false) { + for ( var j in c ) { + if ( c[j].apply( this, [event] ) === false ) { event.preventDefault(); event.stopPropagation(); returnValue = false; @@ -1604,4 +1603,4 @@ jQuery.extend({ } } -}); \ No newline at end of file +}); -- 1.7.10.4