简单的模态 - 当另一个模态存在时调用模态?

时间:2011-05-03 00:14:22

标签: javascript jquery modal-dialog simplemodal

我正在使用Simple Modal并且除了一件事之外我完全正常工作。

我无法解决如何处理模态已经可见并且调用另一个模态的情况。

我想要的是类似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 个答案:

答案 0 :(得分:1)

这似乎不是最好的解决方案,但您可以尝试:

http://jsfiddle.net/Xwn3G/

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

从我所知道的,对show的调用新模态必须遵循模型关闭的完成;或者,它取消了模型html onClose中元素的事件。我也能够以1000毫秒的速度使用它,但这可能取决于用户的浏览器。

答案 1 :(得分:0)

你可以做一个虚假的来电

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

这样,模态函数将在回调上调用并且可以工作。我不确定为什么在没有超出当前范围但不起作用的情况下这不起作用的原因:)