Аргументы в 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, время: 12:52. |