я запускаю метод b() через setTimeout, и из за этого не работает, а если запускаю без него всё работает!
но нужна задержка в полторы секунды, как быть? setTimeout(c.b,1500); |
Так правильно:
function Class(){
this.qqq = function(){
alert("А не как хочется");
}
this.ggg = function(){
this.qqq(); // не работает такой способ вызова
}
}
var qqq = function(){
alert("Работает так как и должно!");
}
var t = new Class();
setTimeout(t.ggg, 1500);
|
function Class(){
this.a = function(){
alert('все работает');
}
this.b = function(){
this.a();
}
}
var c = new Class();
setTimeout(c.b,1500);
Попробуйте сами этот код! |
Почему так оно сработало???
|
Почему оно вызвало функцию а не метод? я понял что с этим как то связан setTimeout и this
|
Потому, что вызов идёт от объекта window, то есть this там не ваш Class, а window.
function Class(){
this.qqq = function(){
alert("А теперь как надо и как хочется");
}
this.ggg = function(){
this.qqq(); // не работает такой способ вызова
}
}
var qqq = function(){
alert("Не запуститься");
}
setTimeout(function(){
var t = new Class();
t.ggg();
}, 1500);
|
Цитата:
|
Skipp,
Спасибо большое!!! я теперь понял ..
...
this.filter = 'div';
this.qqq = 123;
...
this.ttt = function(){
$(this.filter).each(function(){
alert(this.qqq)
});
}
Можно как нибудь такой случай обойти?? без использования объевляния дополнительной переменной |
Magneto,
не пытаясь что то делать, уровень знаний останется на месте |
Ээмм вот так?:)
this.ttt = function(){
$("div").each(function(){
alert(123)
});
}
|
| Часовой пояс GMT +3, время: 23:40. |