Вход Регистрация
Файл: sys/javascript/sources/core/event.js
Строк: 58
<?php
//include "core/dcms.js"
DCMS.Event = {
        
/**
     * Подписка на событие
     * Использование:
     *  menu.on('select', function(item) { ... }
     */
        
on: function(eventNamehandler) {
            if (!
this._eventHandlers)
                
this._eventHandlers = [];
            if (!
this._eventHandlers[eventName]) {
                
this._eventHandlers[eventName] = [];
            }
            
this._eventHandlers[eventName].push(handler);
        },
        
/**
     * Прекращение подписки
     *  menu.off('select',  handler)
     */
        
off: function(eventNamehandler) {
            var 
handlers this._eventHandlers[eventName];
            if (!
handlers)
                return;
            for (var 
0handlers.lengthi++) {
                if (
handlers[i] == handler) {
                    
handlers.splice(i--, 1);
                }
            }
        },
        
/**
     * Генерация события с передачей данных
     *  this.trigger('select', item);
     */
        
trigger: function(eventName) {

            if (!
this._eventHandlers[eventName]) {
                return; 
// обработчиков для события нет
            
}

            
// вызвать обработчики 
            
var handlers this._eventHandlers[eventName];
            for (var 
0handlers.lengthi++) {
                
handlers[i].apply(this, [].slice.call(arguments1));
            }

        }
    }
?>
Онлайн: 0
Реклама