function piliangchuli(){
$("<div/>").dialog({
title: '批量處理',
id:'batchProcessing',
width: 920,
height: 'auto',
top:300,
closed: false,
inline:false,
loadingMessage: '正在加載...',
cache: false,
href :'../business/customermanagement/customerRelations/BatchProcessing.jsp',
modal: true,
onClose : function() {
$(this).dialog('destroy');
mmg.load();
},
});
}
可以使用onclick觸發,然後$選擇器裏可以寫成<div/>,這樣操作過後關閉彈出框後,再彈出來時就不會保留上次彈出時留下來的操作痕跡,會重新渲染出來。
因爲用的是easyui框架,所以就導致點擊左邊菜單欄彈出右邊的tab是用iframe標籤寫的,這樣就導致了一個問題,那就是那些在dialog裏的彈出框會只在當前父級的iframe頁面裏顯示,超出tab頁範圍時會被iframe標籤外的別的東西擋住,顯示不出來,說的簡單點就是dialog彈出框不在最上層顯示。在網上找原因是因爲iframe與外面的div不是一個層級的,屬於跨域的問題了,所以可以用如下方法,使dialog在主頁調用就可以了:
function batchProcessing(){
parent.piliangchuli();
}
這是在子頁面寫的(即iframe框架裏的頁面裏)。上面第一個寫的調用dialog時是在主頁面寫的,這樣就可以通過parent.function來溝通iframe和父頁面的溝通,不會存在跨越問題了。
這樣以後,本來以爲問題都解決了,誰知道又出現問題了,因爲雖然彈出框順利的在主頁面彈出來了(即最上層頁面),但是那個dialog頁面的js和css樣式都失效了,又上度娘查了一圈才發現調出dialog框時只會彈出body標籤裏面的內容,head標籤裏的樣式和js文件都不會被引入,所以只能把這些引入文件寫入body標籤裏才管用。。。
這樣折騰完後,終於發現js和css樣式出來了,但是不虧是網一青銅段位的擼手,這手速,又發現了一個BUG,那就是第一次點擊時,dialog彈出來了,數據什麼的都很正常,但是當第二次點擊時,就會報錯$().dialog() is not a function,dialog也不會彈出來~~無奈只能再次求助度娘,果然度娘沒叫我失望,說是由於主頁已經引入了jauery文件,然後在dialog彈出框的body標籤裏又引入了jquery文件,把它刪除了以後就好了~~
好了,目前使用easyui的dialog問題只有這麼多,說不定會不定期更新~~