1

現在、私はJqueryでモーダルを開くためにうまく機能するコードを使用しています:

            $(document).ready(function(){          
            $("span.ico-detail").click(function(){
                modal.open({content: "View detail of " + $(this).parent().parent().attr("id")});
                e.preventDefault();
            });
        });

そして今、問題は次のとおりです。modal.openを使用して、「Viewdetailof」の文字列を含む「view.html」という名前のHTMLファイルを開くはどうすればよいですか。

HTMLファイル(view.html)を開いて他のテキストと結合できるように、コンテンツを「xxx」で変更するにはどうすればよいですか?

前に感謝します。

4

1 に答える 1

2

がサーバーに保存されていて、そのコンテンツが静的である場合view.htmlは、ajaxを使用してファイルのコンテンツをプリロードすることを選択できます。

$(function () {
    window.myAppNs = {
        viewContent: null;
    };

    $.ajax({
        url: 'view.html',
        dataType: 'html',
        type: 'GET'
    }).done(function (resp) {
        myAppNs.viewContent = resp;
    });

    $("span.ico-detail").click(function(){
        modal.open({content: myAppNs.viewContent + $(this).parent().parent().attr("id")});
        e.preventDefault();
    });
});

グローバル変数を作成していますmyAppNs。これは、アプリに関連するすべての変数を保持します。アイデアは、グローバル名前空間を不要な変数で汚染することではありません。名前空間を作成するためのより良い、より安全な方法があります。それがあなたに興味があるなら、あなたは同じことをグーグルで検索することができます。

ajax呼び出しは、のコンテンツをプリロードし、view.htmlに格納しmyAppNs.viewContentます。クリックハンドラーは、変数からそのコンテンツを読み取ります。

ajax応答が返される前に、ユーザーが要素をクリックできる可能性がわずかにあります。それが問題である場合は、いつでも名前空間の作成とajax呼び出しを移動して、参照した直後にセクションにdocument.ready配置できます。これにより、DOMの準備が整う前にコンテンツをフェッチするのに十分な時間がブラウザに与えられるはずですが、それでも応答が遅れる可能性はわずかです。データがフェッチされた場合にのみユーザーがクリックできるようにする必要がある場合は、ajax呼び出しのコールバック内でクリックハンドラーをバインドします。headjquerydone

于 2012-11-25T19:17:02.263 に答える