src/cm/media/js/lib/yui/yui3-3.15.0/build/yui-later/yui-later-debug.js
author ymh <ymh.work@gmail.com>
Fri, 14 Mar 2014 13:16:10 +0100
changeset 611 fa66f4bb1563
parent 602 e16a97fb364a
permissions -rw-r--r--
add some more custom config and put every thing in comment in the custom.yaml template
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
602
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     1
YUI.add('yui-later', function (Y, NAME) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     2
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     3
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     4
 * Provides a setTimeout/setInterval wrapper. This module is a `core` YUI module,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     5
 * <a href="../classes/YUI.html#method_later">it's documentation is located under the YUI class</a>.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     6
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     7
 * @module yui
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     8
 * @submodule yui-later
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     9
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    10
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    11
var NO_ARGS = [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    12
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    13
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    14
 * Executes the supplied function in the context of the supplied
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    15
 * object 'when' milliseconds later.  Executes the function a
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    16
 * single time unless periodic is set to true.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    17
 * @for YUI
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    18
 * @method later
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    19
 * @param when {Number} the number of milliseconds to wait until the fn
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    20
 * is executed.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    21
 * @param o the context object.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    22
 * @param fn {Function|String} the function to execute or the name of
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    23
 * the method in the 'o' object to execute.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    24
 * @param data [Array] data that is provided to the function.  This
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    25
 * accepts either a single item or an array.  If an array is provided,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    26
 * the function is executed with one parameter for each array item.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    27
 * If you need to pass a single array parameter, it needs to be wrapped
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    28
 * in an array [myarray].
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    29
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    30
 * Note: native methods in IE may not have the call and apply methods.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    31
 * In this case, it will work, but you are limited to four arguments.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    32
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    33
 * @param periodic {boolean} if true, executes continuously at supplied
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    34
 * interval until canceled.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    35
 * @return {object} a timer object. Call the cancel() method on this
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    36
 * object to stop the timer.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    37
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    38
Y.later = function(when, o, fn, data, periodic) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    39
    when = when || 0;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    40
    data = (!Y.Lang.isUndefined(data)) ? Y.Array(data) : NO_ARGS;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    41
    o = o || Y.config.win || Y;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    42
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    43
    var cancelled = false,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    44
        method = (o && Y.Lang.isString(fn)) ? o[fn] : fn,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    45
        wrapper = function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    46
            // IE 8- may execute a setInterval callback one last time
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    47
            // after clearInterval was called, so in order to preserve
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    48
            // the cancel() === no more runny-run, we have to jump through
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    49
            // an extra hoop.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    50
            if (!cancelled) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    51
                if (!method.apply) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    52
                    method(data[0], data[1], data[2], data[3]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    53
                } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    54
                    method.apply(o, data || NO_ARGS);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    55
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    56
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    57
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    58
        id = (periodic) ? setInterval(wrapper, when) : setTimeout(wrapper, when);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    59
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    60
    return {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    61
        id: id,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    62
        interval: periodic,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    63
        cancel: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    64
            cancelled = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    65
            if (this.interval) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    66
                clearInterval(id);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    67
            } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    68
                clearTimeout(id);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    69
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    70
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    71
    };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    72
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    73
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    74
Y.Lang.later = Y.later;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    75
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    76
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    77
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    78
}, '@VERSION@', {"requires": ["yui-base"]});