Аргументы в setTimeout - проблема в IE 6
Привет.
Из справки : Синтаксис: window.setTimeout(выражение, интервал) window.setTimeout(функция, интервал, арг1?, …, аргN?) Я создаю класс
function myclass()
{
var self=this; // Для замыкания
this.myx=777;
this.delaem=function(x)
{
alert(x);
if (self.myx==x) {
// действия
alert('Нужные действия');
}
}
this.zapusk=function()
{
var yy=777;
// определяем что передать
var tmr=window.setTimeout(this.delaem,2000,yy);
}
}
obj=new myclass();
obj.zapusk();
В опере и мозилле нормально передает параметр в setTimeout - 777 (и выполняет действия), а в IE - не передает . Мне нужно обязательно поставить обработчиком - метод класса, потому что там с помощью замыкания сравниваю и дальше действия. Поэтому в setTimeout первый аргумент строкой не могу передать никак (без глоб переменных). Что делать? Спасибо. |
Цитата:
|
var _this = this;
...setTimeout(function() {
_this.delaem(yy);
}, 2000);
|
Спасибо Octane вот теперь все работает.
Двойное замыкание - просто супер. |
Цитата:
|
Цитата:
|
Цитата:
Цитата:
|
Цитата:
А я тут про другое совсем подумал... |
Цитата:
alert(self); Правда, в IE равенства alert(self === window); alert(self === this); выдают false (тогда как во всех остальных браузерах - true), а равенства: alert(self == window); alert(self == this); в IE (как и везде) выдают true. Но равенства: alert(this.self === this.window); и alert(window.self === self.window); выдают в IE также true. |
| Часовой пояс GMT +3, время: 17:22. |