我有三个按钮,每个按钮调用两个函数jquery,一个用于显示,一个用于关闭,图片。
在要打开的函数内部,我有一个顺序函数列表。但是,可能会发生用户单击按钮并且某个功能尚未完成列表并单击它的按钮。
所以我需要调用一个函数并中断另一个函数,任何人都知道怎么做?
我正在使用jquery animate
答案 0 :(得分:1)
所以我需要调用一个函数并中断另一个函数,任何人都知道怎么做?
你无法真正做到这一点,因为浏览器上的JavaScript是单线程的(禁止使用Web Workers,但你只能在UI线程上使用)。所以你不能中断函数调用的执行。
但是如果您正在使用jQuery的动画/效果函数,那么您所做的调用只是将操作置于队列中,然后jQuery异步运行,并且可以通过调用{{3}来中断该操作在元素上。
举例来说:
function kickThingsOff() {
// These could all be written in one line as a chain, but I'm doing them
// separately for emphasis
var elm = $("#myElement");
elm.fadeOut("slow");
elm.fadeIn("slow");
elm.slideUp("slow");
}
function interruptIt() {
$("#myElement").stop(true, true);
}
你实际上不能在中间(例如kickThingsOff
行和fadeIn
行之间)中断slideUp
,但你可以中断动画它通过stop
排队。