Version 3.17.2

APIs

  • Begin typing in the search box above to see results.
Show:

File: event/js/hover.js

/**
 * Adds support for a "hover" event. The event provides a convenience wrapper
 * for subscribing separately to mouseenter and mouseleave. The signature for
 * subscribing to the event is</p>
 *
 * <pre><code>node.on("hover", overFn, outFn);
 * node.delegate("hover", overFn, outFn, ".filterSelector");
 * Y.on("hover", overFn, outFn, ".targetSelector");
 * Y.delegate("hover", overFn, outFn, "#container", ".filterSelector");
 * </code></pre>
 *
 * <p>Additionally, for compatibility with a more typical subscription
 * signature, the following are also supported:</p>
 *
 * <pre><code>Y.on("hover", overFn, ".targetSelector", outFn);
 * Y.delegate("hover", overFn, "#container", outFn, ".filterSelector");
 * </code></pre>
 *
 * @module event
 * @submodule event-hover
 */
var isFunction = Y.Lang.isFunction,
 noop = function () {},
 conf = {
 processArgs: function (args) {
 // Y.delegate('hover', over, out, '#container', '.filter')
 // comes in as ['hover', over, out, '#container', '.filter'], but
 // node.delegate('hover', over, out, '.filter')
 // comes in as ['hover', over, containerEl, out, '.filter']
 var i = isFunction(args[2]) ? 2 : 3;
 return (isFunction(args[i])) ? args.splice(i,1)[0] : noop;
 },
 on: function (node, sub, notifier, filter) {
 var args = (sub.args) ? sub.args.slice() : [];
 args.unshift(null);
 sub._detach = node[(filter) ? "delegate" : "on"]({
 mouseenter: function (e) {
 e.phase = 'over';
 notifier.fire(e);
 },
 mouseleave: function (e) {
 var thisObj = sub.context || this;
 args[0] = e;
 e.type = 'hover';
 e.phase = 'out';
 sub._extra.apply(thisObj, args);
 }
 }, filter);
 },
 detach: function (node, sub, notifier) {
 sub._detach.detach();
 }
 };
conf.delegate = conf.on;
conf.detachDelegate = conf.detach;
Y.Event.define("hover", conf);
 

AltStyle によって変換されたページ (->オリジナル) /