0

当一个事件处理函数像这样注册时:

element.onload = function() 
{   
    var something = Selector("identifier", "inline", 1).FadeIn("inline", 1);
    CenterElement(something);
};

一旦从另一个处理程序函数内部开始执行,有没有办法停止执行?让那个处理函数看起来像这样:

another.onclick = function() 
{
    //Cancel the execution of the above function here
    document.getElementById("start").innerHTML = "Start Slideshow"; 
    this.FadeOut(); 
};

Selector返回一个与问题本身无关的特殊包装对象,因此省略了实现。

众所周知,可以通过分配undefined给处理程序变量来阻止处理程序函数的执行,但是如果它已经开始执行,如何停止它呢?

4

1 回答 1

0

你在这里错过了一个重要的概念。

在javascript中,只有一个执行线程。虽然您可能认为它在执行onclick时被调用onload,但这是完全错误的。

我不知道您使用的是什么框架,但在 jQuery 中您可以执行以下操作:

another.onclick = function() 
{
    //Cancel the execution of the above function here
    Selector("identifier", "inline", 1).stop();
    // ...other stuff
};
于 2012-09-08T11:31:06.330 回答