я запускаю метод 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, время: 15:55. |