src/cm/media/js/lib/yui/yui_3.10.3/build/event-hover/event-hover.js
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 525 89ef5ed3c48b
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
525
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     1
/*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     2
YUI 3.10.3 (build 2fb5187)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     3
Copyright 2013 Yahoo! Inc. All rights reserved.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     4
Licensed under the BSD License.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     5
http://yuilibrary.com/license/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     6
*/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     7
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     8
YUI.add('event-hover', function (Y, NAME) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     9
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    10
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    11
 * Adds support for a "hover" event.  The event provides a convenience wrapper
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
 * for subscribing separately to mouseenter and mouseleave.  The signature for
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
 * subscribing to the event is</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
 * <pre><code>node.on("hover", overFn, outFn);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
 * node.delegate("hover", overFn, outFn, ".filterSelector");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
 * Y.on("hover", overFn, outFn, ".targetSelector");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
 * Y.delegate("hover", overFn, outFn, "#container", ".filterSelector");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
 * </code></pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
 * <p>Additionally, for compatibility with a more typical subscription
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
 * signature, the following are also supported:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
 * <pre><code>Y.on("hover", overFn, ".targetSelector", outFn);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
 * Y.delegate("hover", overFn, "#container", outFn, ".filterSelector");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
 * </code></pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
 * @module event
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
 * @submodule event-hover
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
var isFunction = Y.Lang.isFunction,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
    noop = function () {},
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
    conf = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
        processArgs: function (args) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
            // Y.delegate('hover', over, out, '#container', '.filter')
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
            // comes in as ['hover', over, out, '#container', '.filter'], but
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
            // node.delegate('hover', over, out, '.filter')
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
            // comes in as ['hover', over, containerEl, out, '.filter']
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
            var i = isFunction(args[2]) ? 2 : 3;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
            return (isFunction(args[i])) ? args.splice(i,1)[0] : noop;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
        on: function (node, sub, notifier, filter) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
            var args = (sub.args) ? sub.args.slice() : [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
            args.unshift(null);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
            sub._detach = node[(filter) ? "delegate" : "on"]({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
                mouseenter: function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
                    e.phase = 'over';
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
                    notifier.fire(e);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
                },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
                mouseleave: function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
                    var thisObj = sub.context || this;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
                    args[0] = e;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
                    e.type = 'hover';
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
                    e.phase = 'out';
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
                    sub._extra.apply(thisObj, args);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
            }, filter);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
        detach: function (node, sub, notifier) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
            sub._detach.detach();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
conf.delegate = conf.on;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
conf.detachDelegate = conf.detach;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
Y.Event.define("hover", conf);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
}, '3.10.3', {"requires": ["event-mouseenter"]});