1

simplemodalプラグインを使用して複数のモーダルウィンドウを機能させることができましたが、ユーザーが最初に手動で閉じることなく、それらを切り替えることができる必要があります。

この時点で、私はまだ例によってこれを学んでいます。この問題に関する他のいくつかの参照を見ましたが、提供されたソリューションは機能しないか、同じビルディングブロックで開始しません。

ヒントやアドバイスをいただければ幸いです。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>SimpleModal</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script type='text/javascript' src='js/jquery.simplemodal.js'></script>
<script>
jQuery(function ($) {
    $('#basic-modal .link1').click(function (e) {
        $('#link1-modal-content').modal();
        return false;
    });

    $('#basic-modal .link2').click(function (e) {
        $('#link2-modal-content').modal();
        return false;
    });

    $('#basic-modal .link3').click(function (e) {
        $('#link3-modal-content').modal();
        return false;
    });
});
</script>
<style>
#simplemodal-overlay {background-color:#000; cursor:wait;}
</style>
</head>

<body>

<!-- MAIN PAGE / LINKS TO MODAL WINDOWS-->
<div id='basic-modal'>
    <a href="#" class="link1" id="pop1">Link to Content 1</a><br />
    <a href="#" class="link2" id="pop2">Link to Content 2</a><br />
    <a href="#" class="link3" id="pop3">Link to Content 3</a><br />
</div>



<!-- INDIVIDUAL MODAL WINDOWS CONTENT  -->
<div id="link1-modal-content" style="display:none; width:200px; height:200px; background-color:#FFFFFF;">
    <p>Content 1</p>
    Content 1<br />
    <a href="#" class="link2" id="pop2">Link to Content 2</a><br />
    <a href="#" class="link3" id="pop3">Link to Content 3</a><br />
</div>

<div id="link2-modal-content" style="display:none; width:200px; height:200px; background-color:#FFFFFF;">
    <p>Content 2</p>
    <a href="#" class="link1" id="pop1">Link to Content 1</a><br />
    Content 2<br />
    <a href="#" class="link3" id="pop3">Link to Content 3</a><br />
</div>

<div id="link3-modal-content" style="display:none; width:200px; height:200px; background-color:#FFFFFF;">
    <p>Content 3</p>
    <a href="#" class="link1" id="pop1">Link to Content 1</a><br />
    <a href="#" class="link2" id="pop2">Link to Content 2</a><br />
    Content 3<br />
</div>


</body>
</html>
4

1 に答える 1

1

SimpleModalでは、任意の時点で1つのモーダルのみを開くことができます。そのため、既存のモーダルを閉じて新しいモーダルを開くか、コンテンツを交換する必要があります。

開く/閉じるには、JavaScriptの代わりに次を使用します。

function closeAllModal() {
    $.modal.close();
}

jQuery(function ($) {


    $('.link1').click(function (e) {
        closeAllModal();

        $('#link1-modal-content').modal();
        return false;
    });


    $('.link2').click(function (e) {
        closeAllModal();

        $('#link2-modal-content').modal();
        return false;
    });

    $('.link3').click(function (e) {
        closeAllModal();
        $('#link3-modal-content').modal();

        return false;
    });
});

クリックセレクターを汎用に変更して、すべてのリンクにバインドし、それぞれで開く前にモーダルを閉じる呼び出しを追加しました。これにより、目的の効果が得られるはずです。

于 2012-11-05T16:38:03.620 に答える