У меня есть два компонента с настроенными слушателями событий, один - компонент меню, а другой - кнопка. Когда кнопка нажата, я хочу, чтобы меню закрывалось до , когда запускается функция кнопки onClick, однако порядок событий в настоящее время:
1) Нажата кнопка
* 1006. * 2) Сработало нажатие кнопки
3) Сработало событие щелчка меню onWindow
Ниже приведены настройки для обоих:
Кнопка:
<button class="sos-btn sos-btn-confirm" data-dojo-attach-event="click: _apply">Apply Filters</button>
Меню:
_createEventListeners: function() {
this.clickListener = on.pausable(
window,
'click',
this._onWindowClick.bind(this)
);
this.clickListener.pause();
},
_onWindowClick: function(e) {
if(!this.domNode.parentNode.contains(e.target)) {
this.close();
}
},
Обработчик нажатия кнопки:
_apply: function(e) {
// do things
}
Проблема здесь в том, что мне нужно закрыть меню до запуска обработчика события кнопки, поэтому я хотелось бы, чтобы порядок был следующим:
1) нажата кнопка
2) сработало событие нажатия onWindow в меню
3) сработало нажатие кнопки
Я не против, если мне нужно поместить что-то в верхнюю часть функции _apply
, чтобы немедленно всплыть событие, я просто не уверен, как это сделать.
Спасибо.