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 では、実行スレッドは 1 つだけです。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 に答える