停止从另一个功能的功能

时间:2010-08-02 11:07:09

标签: javascript jquery

我有两个功能

function1()
{
     //...
}

function1中我发出ajax请求并加载图片

还有另一个功能 - function2我在其中调用function1来加载图片。

现在,问题是什么。

如何在我function1再次呼叫之前停止function2的传播?

function2()
    {
        // ...
        // how stop old propogation of function1 here?
        function1(); //call function1 again

    }

由于

3 个答案:

答案 0 :(得分:0)

嗯,我真的没有得到你想要做的事,但仍然......

如果您尝试取消AJAX请求,我认为没有一个简单的解决方案。最好发起另一个反转/停止变更的请求。

但是当你问“如何停止功能?”时,我的回答是为什么在不需要它的地方发起它。在需要时调用它。

如果你真的想发起它&在特定事件上运行,在函数内设置一个if块。或者更确切地说,在您的情况下,在功能1和从功能2改变它。

答案 1 :(得分:0)

使用可在更广范围内操作的标志。像:

flag = false;

function function2(){
    if(flag) function1();
}

现在你可以打电话了

function2(); // and function1 will not be called

或设置:

flag = true;

function2(); //now function1() will be called.

答案 2 :(得分:0)

不是立即加载图像func1(),而是可以插入一点延迟;这样,您可以在每次调用函数时取消先前的下载并安排新的下载。这是一个例子:

var delay = 3500, // Delay for 3.5 seconds
    timeoutId;

function func1(url) {
    if (timeoutId) clearTimeout(timeoutId);
    setTimeout(function() {
        // Add code to download image here
    }, delay);
}

function func2() {
    // As long as you call func1 again before the timeout elapses, the
    // previous download should be cancelled, leaving you with the last
    // selected image
}