Public/Erpadmin/lib/webuploader-0.1.5/src/mediator.js

(开头部分) 6KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

/**
 * 事件处理类,可以独立使用,也可以扩展给对象使用。
 * @fileOverview Mediator
 */
define([
    './base'
], function( Base ) {
    var $ = Base.$,
        slice = [].slice,
        separator = /\s+/,
        protos;

    // 根据条件过滤出事件handlers.
    function findHandlers( arr, name, callback, context ) {
        return $.grep( arr, function( handler ) {
            return handler &&
                    (!name || handler.e === name) &&
                    (!callback || handler.cb === callback ||
                    handler.cb._cb === callback) &&
                    (!context || handler.ctx === context);
        });
    }

    function eachEvent( events, callback, iterator ) {
        // 不支持对象,只支持多个event用空格隔开
        $.each( (events || '').split( separator ), function( _, key ) {
            iterator( key, callback );
        });
    }

    function triggerHanders( events, args ) {
        var stoped = false,
            i = -1,
            len = events.length,
            handler;

        while ( ++i < len ) {
            handler = events[ i ];

            if ( handler.cb.apply( handler.ctx2, args ) === false ) {
                stoped = true;
                break;
            }
        }

        return !stoped;
    }

    protos = {

        /**
         * 绑定事件。
         *
         * `callback`方法在执行时,arguments将会来源于trigger的时候携带的参数。如
         * ```javascript
         * var obj = {};
         *
         * // 使得obj有事件行为
         * Mediator.installTo( obj );
         *
后面还有 156 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。