我正在使用 jQuery 触发器方法来调用事件......但它的行为不一致。有时它调用事件,有时它不调用。
<a href="#" onclick="
$(this).trigger('custom-event');
window.location.href = 'url';
return false;
">text</a>
它custom-event
添加了很多听众。就好像触发方法不是同步的,允许window.location.href
在执行事件之前进行更改。当 window.location.href 发生改变时,会发生导航,打断一切。
如何同步触发事件?
使用 jQuery 1.8.1。
编辑
我发现该事件在调用时具有如下堆栈跟踪:
- jQuery.fx.tick (jquery-1.8.1.js:9021)
- 勾选(jquery-1.8.1.js:8499)
- jQuery.Callbacks.self.fireWith (jquery-1.8.1.js:1082)
- jQuery.Callbacks.fire (jquery-1.8.1.js:974)
- jQuery.speed.opt.complete (jquery-1.8.1.js:8991)
- $.customEvent (myfile.js:28)
这证明了jQuery(我错了......这只能证明我正在调用的事件,里面有一个动画,并且在动画之后在回调中调用了预期的函数)trigger
方法是异步的。