我正在使用jQuery触发器方法来调用一个事件......但它的行为不一致。有时它称之为事件,有时不会。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
方法是异步的。
+1:是的!那就是......谢谢! jQuery'触发器'文档没有提到这种延迟行为......即使它只是一个小小的延迟,有时会造成很大的麻烦。 –
其实我错了......'trigger'是同步的......问题是在触发事件内部运行了一个效果,并且在回调中调用了预期的方法。 –
处理程序必须返回一个Promise ;-) –