1

Twitter Bootstrap を使用したプロジェクトに取り組んでいます。これは単一の html ページで構成されており、jQuery を使用して、サーバーからデータとページをフェッチします。
プロジェクト全体に独自のモーダルがあり、表示するたびに本文にデータを追加します。私の問題は、モーダルを閉じて新しいコンテンツで再度開くと、javascript が機能しなくなり、モーダルが開かれないことです。閉じてから開くまでに遅延を追加すると、一部のブラウザーでは機能しますが、他のブラウザー (クロムなど) では機能せず、コードは本当に醜いです。
新しいモーダルを開く前に、モーダルを閉じたときにイベントをバインドする必要があると思います。モーダルを開くための私のコードは次のとおりです。

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/
さらに詳しい情報が必要な場合はお問い合わせください。よろしくお願いします!

4

1 に答える 1

11

これは古い質問ですが、これは私がモーダルを閉じ、閉じるのを待ってから新しいものを開くために行ってきたことです:

//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");
于 2014-06-24T14:33:15.443 に答える