простой модал - вызов модала, когда присутствует другой модал? - PullRequest
1 голос
/ 03 мая 2011

Я использую Простой модал , и он у меня работает отлично, за исключением одной вещи.

Я не могу понять, как обращаться со случаями, когда модал уже виден и вызывается другой модал.

То, что я хочу, - это что-то вроде shadowbox, где оно будет изменять размер окна до размера нового контента. Хотя, если это невозможно, я соглашаюсь с исчезновением ящика и появлением нового.

Как бы я это сделал?

Это мой текущий код

//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();
});

Ответы [ 2 ]

1 голос
/ 03 мая 2011

Это не кажется лучшим решением, но вы можете попробовать:

http://jsfiddle.net/Xwn3G/

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

Из того, что я могу сказать, призыв к шоу нового модальногодолжен следить за завершением модели;или он отменяет события элементов в html модели onClose.Я также смог заставить его работать за 1000 миллисекунд, но это, вероятно, будет зависеть от браузера пользователя.

0 голосов
/ 23 августа 2011

Вы можете сделать это, сделав ложный вызов get

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

Таким образом, модальная функция будет вызываться при обратном вызове и будет работать.Я не уверен в причинах, почему это не работает без выхода из текущей области, но, по крайней мере, работает:)

...