BuggyBuggy
@BuggyBuggy

Как передать параметр из события?

Здравствуйте.
Событие описано так:
var rMyEvent = document.createEvent('CustomEvent');
        rMyEvent.initCustomEvent( 'appTabsGroupOpen', false, false, { detail: { rElem: 'DDDDD' } } );
        document.dispatchEvent(rMyEvent);

Далее при срабатывании события надо этот параметр rElem оттуда вытащить:
$(document).on('appTabsGroupOpen', function(event) {
            console.log('Событие ' + event.detail.rElem);
        });

Эта запись неправильная. Как правильно записать?
  • Вопрос задан
  • 281 просмотр
Решения вопроса 2
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
rMyEvent.initCustomEvent( 'appTabsGroupOpen', false, false, { rElem: 'DDDDD' });
то что посылается последним аргументом, это и есть event.detail

Ну а правильнее конечно делать так:
new CustomEvent("appTabsGroupOpen", {
  detail: {
    rElem: 'DDDDD',
  },
});
Ответ написан
IvanU7n
@IvanU7n
объявление хоть и считается "old-fashioned", но должно работать (ПС2), использование нормальное, но я бы сделал современный вариант:
var rMyEvent = new CustomEvent('appTabsGroupOpen', { detail: { rElem: 'DDDDD', }, });
document.dispatchEvent(rMyEvent);

а вот jQuery не факт, что работает с событиями из первого блока, т.е. работающим вариантом должно быть
document.addEventListener('appTabsGroupOpen', e => { console.log('Событие ' + e.detail.rElem); });


ПС. ловить событие стоит после добавления обработчика, до этого они уйдут в никуда
ПС2. да, с имеющим кодом обращение должно быть e.detail.detail.rElem
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы