Twitter Bootstrap:关闭模态等待关闭并打开一个新模式

时间:2013-06-19 14:59:47

标签: jquery twitter-bootstrap modal-dialog

我正在使用Twitter Bootstrap开展一个项目。它由一个单独的html页面组成,在jQuery的帮助下,我从服务器获取数据和页面 我对整个项目有一个独特的模态,每当我展示它时,我都会在身体中附加数据。 我的问题是,当我关闭模态并用新内容重新打开它时,javascript停止工作并且没有打开模态。如果我在关闭和打开之间添加一些延迟,它可以在某些浏览器上运行但在其他浏览器上没有(例如chrome)并且代码非常难看。
我认为我应该在打开一个新模式之前关闭模态时绑定一个事件。 这是我打开模态的代码:

function apriModal(header, messaggio, callback, conferma) {
    var re = new RegExp("</?\w+\s+[^>]*>");
    $("#modalHeaderTitle").text(header);
    if (messaggio.match(re)) {
        $("#modalBodyText").html(messaggio);
    }
    else {
        $("#modalBodyText").html("<p>" + messaggio + "</p>");
    }
    (!conferma) ? $("#modalConfirm").hide() : $("#modalConfirm").show();
    $("#finestraModal").modal('show')
    $("#modalConfirm").off().click(function () {
        if (conferma) {
            $("#finestraModal").modal('hide')
            conferma();
        }
    });
    $("#modalClose").show();
    $("#modalClose").off().click(function () {
        if (callback) {
            callback();
        }
        $("#finestraModal").modal('hide');
    });
}

这是一个小例子:http://jsfiddle.net/thetom/nqNzr/15/
如果您需要更多信息请询问。 非常感谢你!

1 个答案:

答案 0 :(得分:9)

这是一个老问题,但这是我一直在做的关闭模态,等待它关闭,然后打开一个新模式:

//Hide the fromModal and open toModal
function switchModals(fromModal, toModal)
{
    $(fromModal).on('hidden.bs.modal', function (e) {
        $(toModal).modal('show');
        //clear this function so it doesn't show up if they exit the window again
        $(fromModal).off();
    });
    $(fromModal).modal('hide');
}

不确定你在那里做的一些正则表达式是什么,但是这个函数做了基础知识。称之为

switchModals("#ModalToClose","#ModalToOpen");