在 Javascript 中处理来自外部库的事件的优先级
Handling priority with events from extenal libraries in Javascript
我正在使用 Remodal Javascript 库来处理模态 windows。
关键是该库具有自定义事件的处理程序,例如以下 javascript
$(document).on('opening', '.remodal', function (e) {
console.log('opening');
});
将在通过单击另一个 DOM 元素打开模态 window 时触发。
<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 时(例如,以正确的顺序附加监听器)之外,并不能真正保证事件执行。
现在,我怎样才能设法在 opening
之前执行 click
?它发生在之前,但不知何故应该有另一个 click
监听器附加到之前执行的锚点。
有什么想法吗?
如果您真正想要的是一种在点击处理程序后强制执行打开处理程序代码的方法 运行,您可以随时使用 setTimeout:
setTimeout("console.log('opening');",100);
我正在使用 Remodal Javascript 库来处理模态 windows。 关键是该库具有自定义事件的处理程序,例如以下 javascript
$(document).on('opening', '.remodal', function (e) {
console.log('opening');
});
将在通过单击另一个 DOM 元素打开模态 window 时触发。
<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 时(例如,以正确的顺序附加监听器)之外,并不能真正保证事件执行。
现在,我怎样才能设法在 opening
之前执行 click
?它发生在之前,但不知何故应该有另一个 click
监听器附加到之前执行的锚点。
有什么想法吗?
如果您真正想要的是一种在点击处理程序后强制执行打开处理程序代码的方法 运行,您可以随时使用 setTimeout:
setTimeout("console.log('opening');",100);