【问题标题】:Function call and interrupt another [closed]函数调用并中断另一个[关闭]
【发布时间】:2013-05-06 13:21:35
【问题描述】:

我有三个按钮,每个按钮调用两个函数jquery,一个用于显示,一个用于关闭,图片。

在要打开的函数内部,我有一个顺序函数列表。但是,可能会发生用户单击一个按钮而某个功能尚未完成列表并单击另一个按钮的情况。

所以我需要调用一个函数并中断另一个函数,有人知道怎么做吗?

我正在使用 jquery 动画

【问题讨论】:

  • 当你说“干扰另一个功能”时,你的意思是“停止另一个功能导致的动画发生”吗?
  • 看看.stop() 这样做api.jquery.com/stop
  • 我一定是盲人,但我看不到你的任何功能代码。
  • 代码值 1024 字... ;-)

标签: javascript jquery


【解决方案1】:

所以我需要调用一个函数并中断另一个函数,有人知道怎么做吗?

你不能真正做到这一点,因为浏览器上的 JavaScript 是单线程的(除非使用 Web Workers,但即使那样你也只有 UI 线程)。所以你不能中断函数调用的执行。

但是,如果您使用 jQuery 的动画/效果函数,您所做的调用只是将操作放入队列中,然后 jQuery 会异步运行,并且您可以通过调用 stop 来中断它元素。

举个例子:

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.

【讨论】:

  • 我正在使用动画图像,但图像不是固定的,而是背景上有几幅图像,一个图像到达,另一个图像到来。我将使用“停止”。但是,如果有人继续点击按钮几次,javascript 将结束,失去自己。无论如何感谢您的澄清!
猜你喜欢
  • 2019-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-02
  • 2022-06-10
  • 2015-03-02
  • 1970-01-01
相关资源
最近更新 更多