diff -r 000000000000 -r 40c8f766c9b8 src/cm/media/js/lib/yui/yui_3.0.0b1/api/mouseentermouseleave.js.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cm/media/js/lib/yui/yui_3.0.0b1/api/mouseentermouseleave.js.html Mon Nov 23 15:14:29 2009 +0100 @@ -0,0 +1,270 @@ + + + + + API: event mouseentermouseleave.js (YUI Library) + + + + + + + + + + +
+
+

Yahoo! UI Library

+

event  3.0.0b1

+ Yahoo! UI Library + > event + + > mouseentermouseleave.js (source view) +
+
+ Search: +
+   +
+
+
+
+ +
+
+
+
+
+ Filters + + + +
+
+ +
+ +
var isString = Y.Lang.isString,
+
+	fireMouseEventForNode = function (node, relatedTarget, eventName, e, spec) {
+
+		if (!node.compareTo(relatedTarget) && !node.contains(relatedTarget)) {
+
+			e.container = e.currentTarget;
+			e.currentTarget = node;
+
+			Y.fire(eventName, e);
+			
+		}
+
+	},
+
+
+	handleMouseEvent = function (e, eventName, spec) {
+
+		var relatedTarget = e.relatedTarget,
+			currentTarget = e.currentTarget,
+			target = e.target;
+
+		if (spec) {
+
+			currentTarget.queryAll(spec).some(function (v) {
+
+				var bReturnVal;
+
+				if (v.compareTo(target) || v.contains(target)) {
+					fireMouseEventForNode(v, relatedTarget, eventName, e, spec);
+					bReturnVal = true;
+				}
+				
+				return bReturnVal; 
+			
+			});
+		
+		}
+		else {
+			fireMouseEventForNode(currentTarget, relatedTarget, eventName, e);
+		}
+
+	},
+
+	sanitize = Y.cached(function (str) {
+
+    	return str.replace(/[|,:]/g, "~");
+
+	}),
+
+	eventConfig = {
+
+    	on: function(type, fn, el, spec) {
+
+	        var sDOMEvent = (type === "mouseenter") ? "mouseover" : "mouseout",
+				sEventName = type + ":" + (isString(el) ? el : Y.stamp(el)) + sDOMEvent,
+	            args = Y.Array(arguments, 0, true),
+				sSelector;
+
+			if (isString(spec)) {
+				sSelector = spec;
+				sEventName = sEventName + sanitize(sSelector);
+			}
+
+	        if (!Y.getEvent(sEventName)) {
+
+	            // Set up the listener on the container
+	            Y.on(sDOMEvent, function (e) {
+	
+					handleMouseEvent(e, sEventName, sSelector);
+
+				}, el);
+	        }
+
+	        args[0] = sEventName;
+
+
+	        // Remove the element (and the spec--if defined) from the args
+		
+			if (sSelector) {
+	        	args.splice(2, 2);
+			}
+			else {
+				args.splice(2, 1);
+			}
+            
+
+	        // Subscribe to the custom event for the delegation spec
+	        return Y.on.apply(Y, args);
+
+	    }
+
+	};
+
+/**
+ * Sets up a "mouseenter" listener—a listener that is called the first time 
+ * the user's mouse enters the specified element(s).  By passing a CSS selector 
+ * as the fourth argument, can also be used to delegate a "mouseenter" 
+ * event listener.
+ * 
+ * @event mouseenter
+ * @param type {string} "mouseenter"
+ * @param fn {string} The method the event invokes.
+ * @param el {string|node} The element(s) to assign the listener to.
+ * @param spec {string} Optional.  String representing a selector that must 
+ * match the target of the event in order for the listener to be called.
+ * @return {EventHandle} the detach handle
+ * @for YUI
+ */
+Y.Env.evt.plugins.mouseenter = eventConfig;
+
+/**
+* Sets up a "mouseleave" listener—a listener that is called the first time 
+* the user's mouse leaves the specified element(s).  By passing a CSS selector 
+* as the fourth argument, can also be used to delegate a "mouseleave" 
+* event listener.
+* 
+* @event mouseleave
+* @param type {string} "mouseleave"
+* @param fn {string} The method the event invokes.
+* @param el {string|node} The element(s) to assign the listener to.
+* @param spec {string} Optional.  String representing a selector that must 
+* match the target of the event in order for the listener to be called.
+* @return {EventHandle} the detach handle
+* @for YUI
+ */
+Y.Env.evt.plugins.mouseleave = eventConfig;
+
+
+
+
+ +
+
+
+ Copyright © 2009 Yahoo! Inc. All rights reserved. +
+
+ + +