У меня есть реализовать три JQuery-подобные функций для контролирования моих пользовательских событий (я не могу с помощью JQuery в моем проекте :-():Передача параметров прослушивателя событий с помощью встроенного javascript?
var Events = {
on: function(evt, fn) {
document.addEventListener(evt, fn);
},
off: function() {
document.removeEventListener(evt, fn);
},
trigger: function(evt, params) {
var event; // The custom event that will be created
if (document.createEvent) {
event = document.createEvent("HTMLEvents");
event.eventName = evt;
event.initEvent(evt, true, true);
event.data = params;
window.dispatchEvent(event);
} else {
event = document.createEventObject();
event.eventName = evt;
event.eventType = evt;
event.data = params;
window.fireEvent("on" + event.eventType, event);
}
}
}
Когда я с помощью моего наблюдателя реализации у меня есть:
Events.on('custom', function(e) {
console.log(e.data); // output [5,10,15]
});
Events.trigger('custom', [5, 10, 15]);
Но мне нужно изменить свою функцию триггера для вызова слушателя с дополнительными параметрами после объекта события Что-то вроде jquery.trigger() функции с extraParameters атрибутом для моего примера:..
Events.on('custom', function(e, a, b, c) {
console.log(a, b, c); //output [5,10,15]
});
Events.trigger('custom', [5,10,15]);
Won» t работа для IE, я думаю? – P0rnflake
Я получил результаты с 'event.detail', но мне нужно получить его с extraParameters как аргументы функции слушателя .... Это важно для меня по одной причине: параметры должны передаваться как массив аргументов (а не как объект)! – xercool
@xercool затем передает все данные в деталях как объект '{'detail': {'key1': value1, 'key2': 'value2'}}' – Strikers