例1:點擊按鈕打開一個window,window重復創建的問題
重點分析:這個問題是初學者經常會犯錯的地方,一般來說簡單的代碼不會產生此問題,但是如果以后代碼復雜以后,這個問題如果發生調試起來會非常麻煩!!
第一種,窗體無id,對此點擊問題;modal屬性背景置灰,從而使觸發該窗體的按鈕只能按一次
第二種,窗體存在id,通過id判斷窗體是否被創建
Ext.onReady(function(){
//例1:點擊按鈕打開一個window,window重復創建的問題
//重點分析:這個問題是初學者經常會犯錯的地方,一般來說簡單的代碼不會產生此問題,但是如果以后代碼復雜以后,這個問題如果發生調試起來會非常麻煩!!
//第一種,窗體無id,對此點擊問題;modal屬性背景置灰,從而使觸發該窗體的按鈕只能按一次
//第二種,窗體存在id,通過id判斷窗體是否被創建
// var btn = Ext.get('btn'); //通過id獲取;這個元素是經過Ext包裝過的Ext對象
// //JQuery code:var btn=$('#btn');var dombtn=btn.get(0);
//// alert(btn.dom.value); //同jquery,想取到原生對象,先轉成dom對象
// btn.on('click',function(){
// if (!Ext.getCmp('mywin')) {//沒有創在id為mywin的窗體,才創建
// Ext.create('Ext.window.Window', {
// id:'mywin', //如果給組件加了id,該組件被Ext所管理
// title: '新窗體',
// height: 200,
// width: 400
//// modal:true //第一種解決對此點擊問題;modal屬性背景置灰,從而使觸發該窗體的按鈕只能按一次
// }).show();
// }
// });
//第二種實現,隱藏,但是依然存在
debugger;
var win = Ext.create('Ext.window.Window', {
title: '新窗體',
height: 200,
width: 400,
closeAction:'hide' //默認為destroy,可以通過show再次渲染
});
Ext.get('btn').on('click',function(){
win.show(); //上邊closeAction用destroy,則win不存在
});
});
