2010-10-17 5 views
24

Est-il possible de spécifier des options pour les options show et hide d'une boîte de dialogue dans l'interface utilisateur jQuery.Interface utilisateur JQuery: afficher/masquer les effets avec les options

Par exemple, au lieu de:

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

Quelque chose comme:

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

(. Le code ci-dessus ne pas, bien sûr, le travail)

Ce que je suis vraiment en train utiliser est la méthode "complète" à l'intérieur de l'effet, ou une fonction de rappel, donc je peux sélectionner du texte après que l'effet soit fait.

Si quelqu'un sait, merci.

Répondre

26

Vous pouvez utiliser ceci:

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

Et définir deux effets différents pour masquer et afficher.

Vous ne pouvez pas utiliser la méthode "complète". Au moins pas avec la version réelle. Cette fonctionnalité est planned for release 1.9

espère que cela aide

+0

Il ne fait de l'aide. Merci. – eje211

46

Je ne sais pas comment spécifier toutes les options, mais j'a réussi à préciser la vitesse, ce qui est l'option que vous avez dans votre exemple. Je l'ai fait comme suit:

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

durée est le nombre de millisecondes que l'animation va durer. J'ai découvert cela en passant par le javascript avec firebug.

+3

Belle trouvaille! Je vous ai donné un vote pour passer à travers jQuery! – BenSwayne

2

Pour voir les options de chaque effet, vous pouvez aller à http://docs.jquery.com/UI/Effects et cliquer sur l'effet que vous voulez maintenant les options specifcs. Par exemple http://docs.jquery.com/UI/Effects/Bounce

Oh et en passant, de Fade Effect n'a aucun argument spécifique. Si vous utilisez le Bounce Effect est ici un exemple de code:

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

Essayez ceci:

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

Je voudrais ajouter que vous pouvez spécifier les effets globaux durée en ajoutant ce qui suit dans le document.

$.fx.speeds._default = duration; 

durée peut être une option ('slow', 'rapide', etc.) ou un numéro miliseconds

+1

J'y réfléchirais à deux fois avant de modifier cette propriété (interne, notez le trait de soulignement principal), car elle affectera tous les scripts dépendants de jQuery sur la page, pas seulement les vôtres. –

+0

Vous avez raison, ça marche pour moi car j'utilise très peu d'effets. Si quelqu'un utilise ui-tabs par exemple, la transition serait très lente avec une durée> 1000ms –

Questions connexes