如何从另一个处理程序内部取消执行JavaScript事件处理程序功能?

时间:2012-09-08 11:27:06

标签: javascript function event-handling

当事件处理函数如下所示注册时:

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分配给处理程序变量来阻止执行处理程序函数,但是如果它已经开始执行则如何阻止它?

1 个答案:

答案 0 :(得分:0)

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

在javascript中,只有一个执行线程。虽然您可能认为onclick在执行onload时被调用,但这很明显。

我不知道你正在使用什么框架,但在jQuery中你可以做到以下几点:

another.onclick = function() 
{
    //Cancel the execution of the above function here
    Selector("identifier", "inline", 1).stop();
    // ...other stuff
};