Je joue avec JQuery Ui, et j'aime comment cette démo fonctionne: http://jqueryui.com/demos/dialog/#modal-message p>
Cependant, lorsqu'une boîte de dialogue apparaît, le seul moyen de le fermer est de cliquer sur l'une des touches d'interface à l'intérieur de la boîte de dialogue - Comment pourrais-je étendre ceci pour fermer n'importe quelle boîte de dialogue donnée lorsque l'utilisateur clique sur la couche d'arrière-plan recouvrant sur la couche d'arrière-plan. la page? p>
J'ai vu où les utilisateurs peuvent frapper "Escape", mais franchement, je ne pense pas que la plupart des utilisateurs penseront à faire cela (je n'ai pas jusqu'à ce que je l'ai vu comme une option), mais cela pourrait survenir à eux de cliquer à l'extérieur. Du message. P>
Y a-t-il un événement / une option qui me manque, je peux appuyer sur? P>
5 Réponses :
Cela devrait faire le truc: cliquer sur Acclamations p> g. P> p> .ui-widget-superposition code> déclenchera le clic sur le bouton Fermer p>
J'ai trouvé le précédent pour être finky parfois, voici une solution simple:
Vous savez que je devais poser des questions sur vivre quelques jours après cela, heh.
Comment appliqueriez-vous l'arrière-plan Cliquez sur l'environnement IE6? Cela échoue de mon côté pour le moment. J'utilise le dernier [github] github.com/jquery/jquery-ui/commit/ ...
Live est mieux selon mes tests!
Juste pour ajouter au cas où une personne exécute dans ce problème - si vous avez plusieurs boîtes de dialogue empilées les unes des autres, les éléments suivants fermeront juste em> la boîte de dialogue qui est en haut: $(".ui-widget-overlay").live("click", function () {
$(".ui-dialog-titlebar-close", $(this).prev()).trigger('click');
});
Il s'agit de la méthode préférée à utiliser lors de la gestion de versions plus récentes de JQuery.
$(".ui-widget-overlay").on("click", function(){ $(".ui-dialog-titlebar-close").trigger('click'); });
Celui-ci fonctionnera certainement, car cela importe lorsque la superposition est dans le DOM ou non.
$(document).on('click', '.ui-widget-overlay', function(){ $(".ui-dialog-titlebar-close").trigger('click'); });
J'ai trouvé la réponse à Stackoverflow.com/Questtions / 1675893 / ... pour mieux fonctionner que ceux énumérés ici.