【问题标题】:simple modal - calling modal when another modal is present?简单模态 - 当存在另一个模态时调用模态?
【发布时间】:2011-05-03 00:14:21
【问题描述】:

我正在使用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();
});

【问题讨论】:

  • 如果您只想替换内容,我建议您查看 Flickr Badge Viewer 演示 (ericmmartin.com/projects/simplemodal-demos)。我重复使用同一个窗口来显示所有不同尺寸的图像。我还为窗口大小的变化设置动画。

标签: javascript jquery modal-dialog simplemodal


【解决方案1】:

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

http://jsfiddle.net/Xwn3G/

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

据我所知,对新模式的显示调用必须在模型关闭完成之后进行;或者,它正在取消模型 html onClose 中元素的事件。我也能够让它在 1000 毫秒内工作,但这可能取决于用户的浏览器。

【讨论】:

    【解决方案2】:

    你可以通过假的 get 调用来做到这一点

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-12
      • 2016-10-12
      • 1970-01-01
      • 1970-01-01
      • 2015-08-07
      • 2021-06-07
      • 2021-02-18
      • 2019-06-01
      相关资源
      最近更新 更多