2010-10-17 58 views
24

是否可以在jQuery UI中爲顯示和隱藏對話框的選項指定選項。jQuery UI:使用選項對話顯示/隱藏效果

例如,而不是:

$('#dialog').dialog({ 
    show: 'fade' 
}); 

喜歡的東西:

$('#dialog').dialog({ 
    show: {effect: 'fade', speed: 1000} 
}); 

(上面的代碼沒有,當然,工作)

什麼我真的很努力要使用效果中的「完整」方法或回調函數,以便在效果完成後選擇一些文本。

如果有人知道,謝謝。

回答

26

您可以使用此:

$("#dialog").dialog({ 
     autoOpen: false, 
     hide: 'fold', 
     show: 'blind' 
}); 

並設置兩個不同的效果,隱藏和顯示。

您不能使用「完整」方法。至少不是與實際版本。這特點是planned for release 1.9

希望它有助於

+0

實際上,它確實幫助了一些。謝謝。 – eje211 2010-11-01 11:48:22

46

我不知道如何指定所有選項,但我還是設法指定的速度,這是你的榜樣,你可以選擇。我這樣做如下:

$('#dialog').dialog({ 
show: {effect: 'fade', duration: 250} 
hide: {effect: 'fade', duration: 5000} 
}); 

duration是動畫將持續的毫秒數。通過使用螢火蟲瀏覽javascript,我發現了這一點。

+3

很好找!我給了你一個通過jQuery進行投票的投票! – BenSwayne 2011-11-07 23:21:48

2

要查看每個效果的選項,您可以轉至http://docs.jquery.com/UI/Effects並單擊您想要的效果特定選項。 例如http://docs.jquery.com/UI/Effects/Bounce

哦,順便說一句de Fade Effect沒有任何特定的參數。如果您使用的彈跳影響這裏的代碼示例:

$('#dialog').dialog({ 
show: {effect: 'bounce', duration: 350, /* SPECIF ARGUMENT */ times: 3} 
}); 
-1

試試這個:

snippet.dialog({ 
open: function(event, ui) { 
    snippet.hide(); 
    snippet.fadeIn(); 
}}); 
0

我想通過將文檔中的下列補充一點,你可以指定全球影響持續時間。

$.fx.speeds._default = duration; 

持續時間可以是一個選項(「慢」,「快」,等等),或者以毫秒爲單位

+1

在修改這個(內部的,注意前導下劃線)屬性之前,我會考慮三次,因爲它會影響頁面上所有依賴於jQuery的腳本,而不僅僅是你自己。 – 2012-11-23 23:30:48

+0

你是對的,它只適用於我,因爲我使用的效果非常少。例如,如果有人正在使用ui-tabs,則轉換時間會非常緩慢,持續時間> 1000毫秒 – 2012-12-12 13:42:16