例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不存在 }); });