2010-02-04 3 views
7

Voici une question rapide qui est probablement plus simple que je ne le pense.Fermer une boîte de dialogue jQuery UI d'un élément à l'intérieur de celle-ci?

Je remplis une boîte de dialogue jQuery UI avec le code HTML résultant à partir d'un appel $ .ajax(). Dans certains cas, html inclut un bouton qui, lorsqu'on clique dessus, je souhaite fermer la boîte de dialogue contenant. En supposant que je ne sache rien de l'élément qui a été spécifié pour être le dialogue en utilisant $("#element").dialog() ... (ie je n'ai aucune idée de ce que le sélecteur "#element" est du contenu interne de la boîte de dialogue) - Quel est le meilleure façon de fermer la boîte de dialogue d'un élément cliqué à l'intérieur de celui-ci?

Répondre

16

Utilisez closest()

$(this).closest('.ui-dialog-content').dialog('close'); 
+2

Intéressant ... il ne semble pas réellement que .ui-dialogue est le bon sélecteur. Dialog supprime quelques divs, et celui qui semble avoir besoin de dialogue ('close') appelé n'est pas ".ui-dialog" ... encore en cours d'investigation ... – womp

+0

ressemble à .closest ('.ui -dialog-content '). dialog (' fermer '); est ce qui est nécessaire. – womp

+0

@Womp, ouais, l'élément '.ui-dialog' est l'élément d'enveloppe que jQuery place autour du contenu original pour le transformer en boîte de dialogue. – Alnitak

2

Quelque chose comme:

$('a.close').click(function(e) { 
    $(this).closest('.dialog').dialog('close'); 
}); 
+0

si l'élément est imbriqué? – nickf

+0

Je réparais mon échantillon juste quand vous avez écrit cela – adamJLev