- for ( var i in element.events[type] )
- delete element.events[type][i];
- else
- for ( var j in element.events )
- $.event.remove( element, j );
-};
-
-$.event.trigger = function(element,type,data) {
- data = data || [ $.event.fix({ type: type }) ];
- if ( element && element["on" + type] )
- element["on" + type].apply( element, data );
-};
-
-$.event.handle = function(event) {
- if ( !event && !window.event ) return;
-
- var returnValue = true, handlers = [];
- event = event || $.event.fix(window.event);
-
- for ( var j in this.events[event.type] )
- handlers[handlers.length] = this.events[event.type][j];
-
- for ( var i = 0; i < handlers.length; i++ ) {
- if ( handlers[i].constructor == Function ) {
- this.$$handleEvent = handlers[i];
- if (this.$$handleEvent(event) === false) {
- event.preventDefault();
- event.stopPropagation();
- returnValue = false;
+ for ( var j in element.events )
+ jQuery.event.remove( element, j );
+ },
+
+ trigger: function(type,data,element) {
+ // Touch up the incoming data
+ data = data || [];
+
+ // Handle triggering a single element
+ if ( element && element["on" + type] ) {
+ // Pass along a fake event
+ data.shift( jQuery.event.fix({ type: type, target: element }) );
+
+ // Trigger the event
+ element["on" + type].apply( element, data );
+
+ // Handle a global trigger
+ } else if ( !element ) {
+ var g = jQuery.event.global[type];
+ if ( g )
+ for ( var i = 0; i < g.length; i++ )
+ jQuery.event.trigger( type, data, g[i] );
+ }
+ },
+
+ handle: function(event) {
+ // Handle adding events to items in IFrames, in IE
+ event = event ||
+ jQuery.event.fix( ((this.ownerDocument || this.document ||
+ this).parentWindow || window).event );
+
+ // If no correct event was found, fail
+ if ( !event ) return;
+
+ var returnValue = true, handlers = [];
+
+ for ( var j in this.events[event.type] )
+ handlers[handlers.length] = this.events[event.type][j];
+
+ for ( var i = 0; i < handlers.length; i++ )
+ if ( handlers[i].constructor == Function ) {
+ this.handleEvent = handlers[i];
+ if (this.handleEvent(event) === false) {
+ event.preventDefault();
+ event.stopPropagation();
+ returnValue = false;
+ }