$('#yy').dialog('open');//打開dialog
這地方要注意,加入你關閉窗口的地方使用$('#yy').dialog('destroy');那么你這個dialog就只能使用一次,為什么呢,因為這地方你創建的是一個固定位置的dialog,因為你是把dialog固定在了上面的div中,這時你只能使用close,即$('#yy').dialog('close');close即是把當前窗口隱藏,但沒有銷毀,所以你可能遇到的問題就是,下次再次打開這個窗口的時候,里面還是上次的內容。如果使用destroy,那么整個dialog組件都被銷毀了,所以只能使用第一次,第二次再怎么點也沒用。那有解決的辦法嗎,肯定是有的。
方法二:
dialog的第二種創建方式就是,創建一個臨時的對話窗口,不用在jsp寫個div啥的。直接在js中寫就可以了,如下
$('<div/>').dialog({
.....//添加一些屬性,比如加載,按鈕等
}
這地方關閉的時候可以destroy了
我在最外層的div中寫個overflow:hidden,目的就是讓下面的內容超出框架后,使用滾動條,但大家要注意,使用滾動條,最起碼這個框架的位置得是固定的吧,即需要在div外層的div給一個postion=relative啊,當然firefox和谷歌只要不是IE內核的,即使你這地方沒有固定位置也沒問題,人家瀏覽器強大嘛。但問題就在IE中,不理你這套,必須按照規矩來,那怎么辦呢,反正我是弄了很久。
方法一:放棄使用臨時dialog,即第二種創建方式,使用第一種創建方式,但每次打開一個dialog都要刷新才能用,太蛋疼啦。
方法二:很簡單
$('<div style="position:relative"/>').dialog({
.....//添加一些屬性,比如加載,按鈕等
}
對就只要在上面的 div后面加個style="position:relative“就搞定了,希望這能幫助在兼容性折磨下的你吧
轉自:http://www.ithao123.cn/content-5611961.html
dialog創建方法有兩種,一種就是直接$(‘div’).dialog()方式創建,一種就是在頁面中寫一個div,如<div id=”test”></div>,$(“#test”).dialog().第一種方法在關閉過后,div就會消失,而第二種方法在關閉過后,div仍然存在,但是使用destroy方法后,會使這個div方法不可用.
使用第二種關閉dialog,直接$(id).dialog(“close”)就可以直接關閉
主要說的是第二種,在第二種當中,如果是要在定義的按鈕事件中執行關閉操作的話,可以這樣寫
$(this).closest(.window-body).dialog("close")
如果是在dialog事件中關閉dialog可以這樣寫
$("this").dialog("close")
為什么可以這樣寫,我們可以在生成一個dialog的時候,跟蹤dialog的結構,比如我使用第二種方法生成一個dialog,那么帶有id的div在生成dialog后,會變成如下所示
如圖所示,如果是id創造的話,可以直接使用$(“#add”).dialog(“close”)關閉,所以$(this).closest(.window-body).dialog("close")也可以關閉
