#javascript #extjs #window
#javascript #extjs #окно
Вопрос:
Я хочу закрыть окно перед открытием другого окна, я пытался сделать, как показано ниже, но это не работает, есть ли кто-нибудь, кто может мне помочь?
Фрагмент моего кода:
listeners: {
click: function() {
var win = new Ext.window.Window({
constrain: true,
height: 300,
title: 'Window',
width: 300,
closeAction: 'hide'
});
if (win.isVisible() !== true) {
win.show();
} else {
win.close();
}
}
}
Комментарии:
1. win — это то же самое окно?
2. Вы хотите получить какое-либо предупреждение или всплывающее окно после закрытия вашего первого и открытия второго окна?
3.
win.isVisible()!==true
царапает голову
Ответ №1:
Вы можете использовать Ext.WindowManager
.
Ext.create('Ext.Button', {
text: 'Click me',
renderTo: Ext.getBody(),
listeners: {
click: function() {
Ext.WindowManager.each(function(cmp) {
cmp.close();
});
Ext.create('Ext.window.Window', {
constrain: true,
height: 300,
title: 'Window',
width: 300,
closeAction: 'hide'
}).show();
}
}
})
<script src="http://cdn.sencha.com/ext/gpl/4.2.0/ext-all.js"></script>
<link href="http://cdn.sencha.com/ext/gpl/4.2.0/resources/css/ext-all.css" rel="stylesheet" />
Ответ №2:
var win = new Ext.window.Window({
constrain: true,
height: 300,
title: 'Window',
width: 300,
closeAction: 'hide',
listeners:{
beforeclose:function(){
Ext.Msg.alert('Close','You're closing Window',function(){
var win2== new Ext.window.Window({
constrain: true,
height: 300,
title: 'Window2',
width: 300,
closeAction: 'hide'
});
win2.show();
});
}
}
});
win.show();
Ответ №3:
Вам нужно добавить beforeclose
событие в ваше окно. В нем вы вызываете новое окно.
Ext.application({
name: 'Fiddle',
launch: function() {
let i = 1;
function create_window(title) {
var win = new Ext.window.Window({
constrain: true,
height: 150,
title: 'Window ' title,
width: 300,
closeAction: 'hide',
listeners: {
beforeclose: function (sender, options) {
i ;
create_window(i);
return true;
}
}
});
if (win.isVisible() !== true) {
win.show();
} else {
win.close();
}
}
create_window(i);
}
});
<script src="http://cdn.sencha.com/ext/gpl/4.2.0/ext-all.js"></script>
<link type="text/css" rel="stylesheet" href="http://cdn.sencha.com/ext/gpl/4.2.0/resources/css/ext-all.css")/>