このコードを参照してください:
var MyObject = new function() {
this.tos = new Array();
this.show = function() {
this.clearTimeouts();
$("#divExample").slideDown(null,function() {
MyObject.tos[MyObject.tos.length] =
setTimeout(function(){MyObject.doSomething();} , 1800);
});
return;
};
this.doSomething = function() {
return;
};
this.clearTimeouts = function(){
for (var i=0; i<this.tos.length; i++)
clearTimeout(this.tos[i]);
this.tos = new Array();
return;
};
}
MyObject とそのメソッドはいくつかの場所で使用されています。やり方が悪いのかも知れないけど。私自身の理由で jQuery とあまり密接に結び付けたくなかったので、スライドを style.display に簡単に変更できるので、このままにしておくことは理にかなっています。
問題は、jQuery スライドのコールバックでオブジェクトを MyObject として参照するのが好きではないことですが、タイムアウト参照をそれらの配列に追加して、それらをすべてクリアできるようにする必要があります。これを行うより良い方法はありますか?
ありがとう!