From: John Resig <jeresig@gmail.com>
Date: Thu, 26 Oct 2006 16:09:55 +0000 (+0000)
Subject: Rolled back Joern's changes. They've been moved to another branch, and will be merged... 
X-Git-Url: http://git.asbjorn.biz/?a=commitdiff_plain;h=476cbd2f1afd39e32feb350a732877c18f9f7715;p=jquery.git

Rolled back Joern's changes. They've been moved to another branch, and will be merged for 1.1.
---

diff --git a/src/event/event.js b/src/event/event.js
index 55e205a..a60c461 100644
--- a/src/event/event.js
+++ b/src/event/event.js
@@ -1583,8 +1583,8 @@ new function(){
 		var o = e[i];
 		
 		// Handle event binding
-		jQuery.fn[o] = function(f, amount){
-			return f ? this.bind(o, f, amount) : this.trigger(o);
+		jQuery.fn[o] = function(f){
+			return f ? this.bind(o, f) : this.trigger(o);
 		};
 		
 		// Handle event unbinding
@@ -1592,8 +1592,20 @@ new function(){
 		
 		// Finally, handle events that only fire once
 		jQuery.fn["one"+o] = function(f){
-			// use bind with amount param to bind only once
-			return this.bind(o, f, 1);
+			// Attach the event listener
+			return this.each(function(){
+
+				var count = 0;
+
+				// Add the event
+				jQuery.event.add( this, o, function(e){
+					// If this function has already been executed, stop
+					if ( count++ ) return true;
+				
+					// And execute the bound function
+					return f.apply(this, [e]);
+				});
+			});
 		};
 			
 	};
diff --git a/src/jquery/jquery.js b/src/jquery/jquery.js
index 65f8423..9561ea9 100644
--- a/src/jquery/jquery.js
+++ b/src/jquery/jquery.js
@@ -2271,7 +2271,7 @@ jQuery.extend({
 		handle: function(event) {
 			if ( typeof jQuery == "undefined" ) return false;
 
-			event = jQuery.event.fix( event );
+			event = event || jQuery.event.fix( window.event );
 
 			// If no correct event was found, fail
 			if ( !event ) return false;
@@ -2295,19 +2295,16 @@ jQuery.extend({
 		},
 
 		fix: function(event) {
-			if(jQuery.browser.msie) {
-				event = window.event;
+			if ( event ) {
 				event.preventDefault = function() {
 					this.returnValue = false;
 				};
+
 				event.stopPropagation = function() {
 					this.cancelBubble = true;
 				};
-				event.target = event.srcElement;
-			} else if(jQuery.browser.safari && event.target.nodeType == 3) {
-				event = jQuery.extend({}, event);
-				event.target = event.target.parentNode;
 			}
+
 			return event;
 		}
 
@@ -3399,29 +3396,15 @@ jQuery.macros = {
 		 * } )
 		 * @desc Stop only an event from bubbling by using the stopPropagation method.
 		 *
-		 * @example $("form").bind( "submit", function(event) {
-		 *   // do something after submit
-		 * }, 1 )
-		 * @desc Executes the function only on the first submit event and removes it afterwards
-		 *
 		 * @name bind
 		 * @type jQuery
 		 * @param String type An event type
 		 * @param Function fn A function to bind to the event on each of the set of matched elements
-		 * @param Number amount An optional amount of times to execute the bound function
 		 * @cat Events
 		 */
-		bind: function( type, fn, amount ) {
+		bind: function( type, fn ) {
 			if ( fn.constructor == String )
 				fn = new Function("e", ( !fn.indexOf(".") ? "jQuery(this)" : "return " ) + fn);
-			if( amount > 0 ) {
-				var element = this, handler = fn, count = 0;
-				fn = function(e) {
-					if( ++count >= amount )
-						jQuery(element).unbind(type, fn);
-					handler.apply(element, [e]);
-				};
-			}
 			jQuery.event.add( this, type, fn );
 		},