2010-10-17 57 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