Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery SimpleModel是否关闭现有模式并打开新模式?_Jquery_Simplemodal - Fatal编程技术网

Jquery SimpleModel是否关闭现有模式并打开新模式?

Jquery SimpleModel是否关闭现有模式并打开新模式?,jquery,simplemodal,Jquery,Simplemodal,好的,所有情态动词在右上角都有一个图像来关闭它们。我如何制作另一个锚来做同样的事情?我想我可以使用默认为“SimpleModel close”的“closeClass”选项,只需将该类添加到锚点,但没有达到预期效果。这就是我应该做的吗?此外,所有模态将有一个“联系我们”链接,该链接应关闭自己的模态并打开“联系模态”。我怎么能等到它关闭后再打开下一个呢 想法 $('a#ask').click(function(){ $.modal.close(function(){

好的,所有情态动词在右上角都有一个图像来关闭它们。我如何制作另一个锚来做同样的事情?我想我可以使用默认为“SimpleModel close”的“closeClass”选项,只需将该类添加到锚点,但没有达到预期效果。这就是我应该做的吗?此外,所有模态将有一个“联系我们”链接,该链接应关闭自己的模态并打开“联系模态”。我怎么能等到它关闭后再打开下一个呢

想法

$('a#ask').click(function(){
        $.modal.close(function(){
        });
        $('#modal-contact').modal();
    });
1) 如果将
simplemodal close
指定给对话框内容中的元素,simplemodal将自动绑定close函数以单击该元素的事件

2) 有很多方法可以做到这一点,要么交换内容,要么先用$.modal.close()关闭对话框;然后打开一个新的

更新

$('a#ask').click(function(){
    $('#modal-contact').modal({onShow: function (dialog) {
        // handle the close yourself.
        // Don't use the closeClass on this element
        // call $.modal.close(); when you are done
        // call a function to open a new modal
    });
    return false;
});

要回答第二个问题——如何关闭现有模式并随后打开新模式——您需要做三件事:

  • 在第一个模式的回调选项中添加Persist:true。根据Eric Martin的网站,“如果为true,数据将在模式调用中保持,如果为false,数据将恢复到其原始状态。”
  • onClose回调添加到第一个模式
  • 在运行函数之前关闭第一个模式,以打开第二个模式 因此,当您使用$.model.close()关闭模式时,onClose将运行,从而触发动画并关闭模式。由于persist为true,因此将保留以下函数。您的函数将启动,第二个模态将打开

    $("#first_modal").modal({
         containerId: 'modal_id',
         persist: true,
         onClose: function (dialog) {
         dialog.container.fadeOut(100, function () {
            dialog.overlay.fadeOut(200, function(){
                $.modal.close();
                showSecondModal();      
            });
       });
    
    }
    });

    当前onClose事件的行为类似于$.modal.close()的onBeforeClose和NoOnAfterClose。 唯一的解决办法是等待:

    $.modal.close();
    设置超时(showSecondModal,500)

    升级至SimpleModel的最新版本,目前为1.4.4。超时问题在1.4.2中根据以下内容修复:

    已删除导致问题的close()的opera变通方法

    上面的代码稍作修改后,应能按预期工作:

    $('a#ask').click(function(){
        $.modal.close();
        $('#modal-contact').modal();
    });
    

    我可以让它关闭,但由于某种原因,我不知道如何打开一个新的。我尝试了一些代码(我把它放在我原来的帖子里),但它似乎不起作用。模态关闭,但没有打开模态联系人1。非常好的观察,在这次猎鸭中花费了宝贵的两个小时,谢谢