J'utilise le plugin SimpleModal pour afficher une boîte de dialogue sur un site. Dans cette boîte de dialogue, j'ai deux liens qui vont effectuer des requêtes AJAX et la réponse de ces demandes devrait remplacer le contenu actuel de la boîte de dialogue. J'essaie de garder les choses aussi flexibles que possible, donc si je veux pouvoir charger différentes réponses dans la boîte de dialogue plus tard, cela fonctionnera.jQuery Redimensionnement SimpleModal après la requête AJAX
Dans une fonction que j'ouvre la boîte de dialogue:
$('div.modal').modal(
{
minWidth: width,
minHeight: height,
onOpen: modal_onOpen,
onClose: modal_onClose
});
Le rappel onClose ressemble à ceci:
function modal_onClose(dialog)
{
dialog.container.fadeOut('slow', function()
{
dialog.data.hide();
if(reload_dialog)
{
data = ajax_page_load(reload_url, false, false);
if(data.statusText == 'OK')
{
dialog.container.width(reload_width);
dialog.container.height(reload_height);
$.modal.setPosition();
$('div.modal div.container').html(data.responseText);
dialog.data.show();
dialog.container.fadeIn('slow', function()
{
$('a.simplemodal-close').bind('click', function()
{
$.modal.close();
});
});
}
reload_dialog = false;
}
else
{
dialog.overlay.slideUp('slow', function()
{
$.modal.close();
});
}
});
}
Et quand je veux charger quelque chose de nouveau dans la boîte de dialogue, j'ai ceci:
var reload_dialog = false;
var reload_url;
var reload_width;
var reload_height;
function load_dialog(url, width, height)
{
reload_dialog = true;
reload_url = url;
reload_width = width;
reload_height = height;
$.modal.close();
}
Maintenant, tout le code ci-dessus fonctionne. Mais je suis inquiet que j'ai trop de choses compliquées. Voici pourquoi:
Dans modal_onClose, j'ai été forcé de relier le gestionnaire de fermeture à l'ancre à l'intérieur de la boîte de dialogue. Si je ne suis pas lié, je suis incapable de fermer la boîte de dialogue APRÈS la requête AJAX, même si la balise d'ancrage s'affiche correctement dans la boîte de dialogue. De plus, après avoir lié la balise d'ancrage, elle fonctionne mais ignore les animations onClose que j'ai définies. En conséquence de tout cela, j'ai l'impression de ne pas avoir adopté la meilleure approche de la solution.
Est-ce que quelqu'un a accompli quelque chose de similaire? Des conseils?
Merci à l'avance, je sais qu'il ya beaucoup d'informations ici :)