我有两个函数挂在表单的submit
事件上。每个函数都在不同的位置,一个函数可以影响另一个函数。
如何强制其中一个函数与最低优先级挂钩(即最后执行)?
答案 0 :(得分:7)
我能想到四种方式:
自己管理回调,并且只有一个事件处理程序以所需的顺序调用函数。
在最后应该触发的函数中,以零毫秒超时执行实际工作。如果所有其他函数同步工作(并且您可以使用事件冒泡期间未发生的最终函数),那么这将实现相同的目的。
在DOM树中将要被触发的最后一个处理程序绑定在更高的位置。你必须测试它是否适用于submit
事件;冒泡这些事件在IE中不起作用,但jQuery docs提到这已在jQuery中规范化了。值得一试。
有点类似于1.,当绑定除低优先级之外的任何其他处理程序时,取消绑定后者,绑定新的,最后重新绑定最后一个要运行的。
答案 1 :(得分:2)
您可以为处理程序使用自定义事件,并让第一个处理程序捕获提交以阻止它,执行其操作,为第二个处理程序触发事件并让第二个执行提交
答案 2 :(得分:1)
如果您想使用/可以使用自定义事件,可以使用https://github.com/fusion-events/fusion-framework