1

我正在使用Remodal Javascript lib 来处理模态窗口。关键是该库具有自定义事件的处理程序,例如以下 javascript

$(document).on('opening', '.remodal', function (e) {
   console.log('opening');
});

当通过单击另一个 DOM 元素打开模式窗口时将触发。

<a data-remodal-target="modal-window-id" id="trigger">CLICK ME TO OPEN MODAL</a>

<div class="remodal data-remodal-id="modal-window-id>MODAL CONTENT</div>

现在,如果我在 javascript 文件中添加以下对点击事件的调用

$(document).on('click', '#trigger', function (e) {
   console.log('trigger clicked');
});

无论前一个脚本的位置如何(即在另一个之前或之后),我都看到该opening事件是在之前触发的。我知道,在 Javascript 中并不能真正保证事件的执行,除了一些例外或使用 jQuery 时(例如以正确的顺序附加侦听器)。

现在,我怎样才能设法执行click之前opening?它发生在之前,但不知何故应该有另一个click侦听器附加到之前执行的锚点。

任何想法?

4

1 回答 1

1

如果您真正想要的是一种强制在打开处理程序中执行代码以在单击处理程序后运行的方法,您始终可以使用 setTimeout:

setTimeout("console.log('opening');",100);
于 2017-06-13T16:39:49.950 回答