thd/web/js/jquery-tooltip/lib/.svn/text-base/jquery.delegate.js.svn-base
changeset 35 94a1dc255022
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/thd/web/js/jquery-tooltip/lib/.svn/text-base/jquery.delegate.js.svn-base	Tue Sep 22 16:40:38 2009 +0200
@@ -0,0 +1,56 @@
+/*
+ * jQuery delegate plug-in v1.0
+ *
+ * Copyright (c) 2007 Jörn Zaefferer
+ *
+ * $Id: jquery.delegate.js 4786 2008-02-19 20:02:34Z joern.zaefferer $
+ *
+ * Dual licensed under the MIT and GPL licenses:
+ *   http://www.opensource.org/licenses/mit-license.php
+ *   http://www.gnu.org/licenses/gpl.html
+ */
+
+// provides cross-browser focusin and focusout events
+// IE has native support, in other browsers, use event caputuring (neither bubbles)
+
+// provides delegate(type: String, delegate: Selector, handler: Callback) plugin for easier event delegation
+// handler is only called when $(event.target).is(delegate), in the scope of the jQuery-object for event.target 
+
+// provides triggerEvent(type: String, target: Element) to trigger delegated events
+;(function($) {
+	$.each({
+		focus: 'focusin',
+		blur: 'focusout'	
+	}, function( original, fix ){
+		$.event.special[fix] = {
+			setup:function() {
+				if ( $.browser.msie ) return false;
+				this.addEventListener( original, $.event.special[fix].handler, true );
+			},
+			teardown:function() {
+				if ( $.browser.msie ) return false;
+				this.removeEventListener( original,
+				$.event.special[fix].handler, true );
+			},
+			handler: function(e) {
+				arguments[0] = $.event.fix(e);
+				arguments[0].type = fix;
+				return $.event.handle.apply(this, arguments);
+			}
+		};
+	});
+
+	$.extend($.fn, {
+		delegate: function(type, delegate, handler) {
+			return this.bind(type, function(event) {
+				var target = $(event.target);
+				if (target.is(delegate)) {
+					return handler.apply(target, arguments);
+				}
+			});
+		},
+		triggerEvent: function(type, target) {
+			return this.triggerHandler(type, [jQuery.event.fix({ type: type, target: target })]);
+		}
+	})
+})(jQuery);