Javascript 窗口单击事件在按钮单击事件之前触发

Javascript 窗口单击事件在按钮单击事件之前触发,javascript,events,dojo,Javascript,Events,Dojo,我有两个设置了事件侦听器的组件,一个是菜单组件,另一个是按钮。单击按钮时,我希望在启动按钮的onClick函数之前关闭菜单,但当前事件顺序为: 1) 按钮被点击 2) 按钮的onclick被触发 3) 菜单的onWindow单击事件被激发 两者的设置如下所示: 按钮: <button class="sos-btn sos-btn-confirm" data-dojo-attach-event="click: _apply">Apply Filters</button&g

我有两个设置了事件侦听器的组件,一个是菜单组件,另一个是按钮。单击按钮时,我希望在启动按钮的onClick函数之前关闭菜单,但当前事件顺序为:

1) 按钮被点击

2) 按钮的onclick被触发

3) 菜单的onWindow单击事件被激发

两者的设置如下所示:

按钮:

    <button class="sos-btn sos-btn-confirm" data-dojo-attach-event="click: _apply">Apply Filters</button>
按钮单击处理程序:

        _apply: function(e) {
            // do things
        }
这里的问题是,我需要在运行按钮的事件处理程序之前关闭菜单,因此我希望顺序是:

1) 按钮被点击

2) 菜单的onWindow单击事件被激发

3) 按钮的onclick被触发

我不介意我是否需要在
\u apply
函数的顶部放置一些东西来立即对事件进行冒泡,我只是不知道如何做到这一点


谢谢。

我刚刚尝试在setTimeout中包装整个_apply函数,将其从主线程中删除,这就完成了,但是我想知道是否有更优雅的方法。复制关闭菜单的代码并将其粘贴到按钮点击事件的顶部。它们是两个完全独立的模块,我不想这样将它们耦合在一起@伊奥默
        _apply: function(e) {
            // do things
        }