Extjs и SetTimeout
Ext.get('id1').on('click',
function()
{var a=Ext.Msg.alert("1","2");
setTimeout('a.hide()',1000);
return a;});
вот есть такой кусочек кода, по логике, он должен привязывать к кнопке с id 'id1' событие click при котором показывается окошко, и которое должно исчезнуть через 1сек. Но, получаю ошибку в вот этой строчке:
setTimeout('a.hide()',1000); - a is not defined.
Как побороть эту ошибку? |
setTimeout(function () {
a.hide();
}, 1000);
|
Цитата:
|
eval строки 'a.hide()' выполнится в глобальном контексте, а там объекта "a" нет.
(function () {
var obj = {
test: function () {
alert(1);
}
};
eval("obj.test()");
}());
function func(str) {
eval(str);
}
(function () {
var obj = {
test: function () {
alert(1);
}
};
func("obj.test()"); // func вместо setTimeout
}());
|
Octane, Вы правы - спасибо большое.
P.S. аналог для SetTimeout в extjs: метод defer(). Перепишем пример, на чистом extjs:
Ext.get('id1').on('click',
function()
{var a=Ext.Msg.alert("1","2");
(function(){a.hide();}).defer(1000);
|
| Часовой пояс GMT +3, время: 16:31. |