/ / simple modal - wywoływanie modalu, gdy obecny jest inny modal? - javascript, jquery, modal-dialog, simpleemodal

prosty modalny - wywoływanie modalne, gdy obecny jest inny modal? - javascript, jquery, modal-dialog, simplemodal

ja używam Prosty modal i mam to działa idealnie, z wyjątkiem jednej rzeczy.

Nie mogę się dowiedzieć, jak obsługiwać przypadki, w których modal jest już widoczny i wywoływany jest inny modal.

To, czego chcę, to coś w rodzaju shadowbox, w którym zmieni rozmiar pudełka do rozmiaru nowej zawartości. Chociaż jeśli nie będzie to możliwe, zadowolę się zniknięciem pudełka i pojawieniem się nowego.

Jak to zrobić?

To jest mój obecny kod

//show/hide animations
$.extend($.modal.defaults, {
onOpen: function (dialog) {
dialog.overlay.fadeIn("fast", function () {
dialog.data.show();
dialog.container.show("slide", {direction: "down"}, "medium");
});
},
onClose: function (dialog) {
dialog.container.hide("slide", {direction: "up"}, "medium", function () {
dialog.overlay.fadeOut("fast", function () {
$.modal.close();
});
});
}
});

//triggers
$("#subscribe_form").modal({
minWidth: 860,
minHeight: 390
});

//this link is both inside the subscribe_form modal, and on a menu bar
$(".login_link").live("click", function() {
$("#login_dialog").modal();
});

Odpowiedzi:

1 dla odpowiedzi № 1

Nie wydaje się to najlepszym rozwiązaniem, ale możesz spróbować:

http://jsfiddle.net/Xwn3G/

$(".login_link").live("click", function() {
setTimeout(function(){$("#login_dialog").modal();}, 1500);
$.modal.close();
});

Z tego co mogę powiedzieć, wezwanie do serialunowy modal musi podążać za zakończeniem modelu close; lub anuluje zdarzenia elementów w html modelu onClose. Udało mi się również uruchomić go z 1000 milisekund, ale to prawdopodobnie będzie zależeć od przeglądarki użytkownika.


0 dla odpowiedzi nr 2

Możesz to zrobić, wykonując fałszywe połączenie

$(".login_link").live("click", function() {
$.get("", function(){
$("#login_dialog").modal();
});
});

W ten sposób funkcja modalna zostanie wywołana na wywołaniu zwrotnym i zadziała. Nie jestem pewien powodów, dla których to nie działa bez wyjścia z obecnego zakresu, ale przynajmniej działa :)