javascript eventMixin - примесьдлянавешиванияреакциинасобытия
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript eventMixin - примесьдлянавешиванияреакциинасобытия相关的知识,希望对你有一定的参考价值。
var eventMixin = {
/**
* Подписка на событие
* Использование:
* menu.on('select', function(item) { ... }
*/
on: function(eventName, handler) {
if (!this._eventHandlers) this._eventHandlers = {};
if (!this._eventHandlers[eventName]) {
this._eventHandlers[eventName] = [];
}
this._eventHandlers[eventName].push(handler);
},
/**
* Прекращение подписки
* menu.off('select', handler)
*/
off: function(eventName, handler) {
var handlers = this._eventHandlers && this._eventHandlers[eventName];
if (!handlers) return;
for(var i=0; i<handlers.length; i++) {
if (handlers[i] == handler) {
handlers.splice(i--, 1);
}
}
},
/**
* Генерация события с передачей данных
* this.trigger('select', item);
*/
trigger: function(eventName /*, ... */) {
if (!this._eventHandlers || !this._eventHandlers[eventName]) {
return; // обработчиков для события нет
}
// вызвать обработчики
var handlers = this._eventHandlers[eventName];
for (var i = 0; i < handlers.length; i++) {
handlers[i].apply(this, [].slice.call(arguments, 1));
}
}
};
// Класс Menu с примесью eventMixin
function Menu() {
// ...
}
for(var key in eventMixin) {
Menu.prototype[key] = eventMixin[key];
}
// Генерирует событие select при выборе значения
Menu.prototype.choose = function(value) {
this.trigger("select", value);
}
// Создадим меню
var menu = new Menu();
// При наступлении события select вызвать эту функцию
menu.on("select", function(value) {
alert("Выбрано значение " + value);
});
// Запускаем выбор (событие select вызовет обработчики)
menu.choose("123");
以上是关于javascript eventMixin - примесьдлянавешиванияреакциинасобытия的主要内容,如果未能解决你的问题,请参考以下文章
javascript的题。
javascript JavaScript isset()等效: - JavaScript
JavaScript 使用JavaScript更改CSS(JavaScript)
JavaScript之基础-1 JavaScript(概述基础语法)
前端基础-JavaScript的基本概述和语法
JavaScript