2010-06-17 36 views
3

我有一個頁面,爲不同的事情使用多個對話框。有些對話框可能有其他按鈕,而其他對象可能需要與另一個不同的高度......所有這些對象都有一組不會改變的參數。我的問題,我能有這樣一個默認:jquery ui-使對話更「動態」?

$('.someElement').dialog({ 
    width: 999, 
    show: 'slide', 
    hide: 'slide', 
    ETC: 'some other option' 
}); 

,並用它來進行所有的對話框,然後通過按鈕或高度動態地,當我打開一個對話框?這似乎是錯誤的,像上面的每個對話框我需要...

謝謝!

回答

1

可以使用"option" method(這需要一個對象,相同格式的),像這樣:

$('.someElement').dialog({ 
    width: 999, 
    show: 'slide', 
    hide: 'slide', 
    autoOpen: false 
}); 
$('.someElement').dialog('option', { 
    buttons: { "Ok": function() { $(this).dialog("close"); } }, 
    height: 400 
}).dialog('open'); 

You can see a demo here,這只是設置你調用open method之前想要的任何選項。

+0

你的語法是有點關閉。我得到這個工作,但我沒能得到多個PARAMS工作:( '對話 ')\t \t $對話框(' 選項', \t \t \t '按鈕',{ \t \t \t \t '確定':函數( ){ \t \t \t \t \t $(本).dialog( 「親密」); \t \t \t} \t \t})對話框( '開放')。 - 是否可以在這裏添加多個「選項」? – mike 2010-06-17 18:41:09

+0

@mike - 你是對的,我錯過了一個'}'來關閉''按鈕:{'在那裏,答案被更新並添加了一個可以玩的演示。 – 2010-06-17 19:15:08

+0

我現在看到...一個對象。謝謝! – mike 2010-06-17 19:30:38

5

您可以爲此創建一個包裝函數:

function showDialog(target, options){ 
    options.width = 999; 
    options.show = 'slide'; 
    options.hide = 'slide'; 

    $(target).dialog(options); 
} 

然後你只是調用函數時,要創建一個對話框。你甚至可以變得花哨,並把它變成一個jQuery插件,如果你真的想...