0
$(function () {
    loadFiles('Reports');
    var colorboxOptions = GetColorboxOptions();
    colorboxOptions.onOpen = onViewFileClicked;
    $("a.link_file").colorbox(colorboxOptions);

});

空のdivにajax呼び出しを入力する必要がありますloadFiles('Reports')。しかし、どうすればcolorbox新しく作成された<a>タグに追加できますか?上記のコードは機能しません。colorboxの後に作成されたすべてのa.link_fileタグを見つけることができないよう$(document).ready()です。誰かが私に助けを与えることができますか?ありがとうございました。

- -アップデート - -

loadFilesjTemplateを使用しています

function loadFiles(folder) {
$.ajax({
    url: '/Api/Files/' + folder,
    type: "GET",
    contentType: "application/json; charset=utf-8",
    success: function (result) {
        console.log(result);
        $('#Container').setTemplateURL("/Templates/FileList.htm", null, { filter_data: false });
        $('#Container').processTemplate(result);
    }
});

}

それが行うことは、<div>呼び出されたを埋めるためのHtmlコードを生成することContainerです。

4

2 に答える 2

2

loadFiles関数がajax呼び出しをディスパッチしている場合、おそらく発生しているのは、データの取得と関数の残りの部分の続行を処理するための新しいスレッドを生成していることです。ajax呼び出しが完了した後に何かを発生させたい場合は、発生したいことをajax呼び出しの「success:」関数に入れる必要があります。そうでなければ、あなたは物事があなたが望む順序で起こることを保証することはできません。

loadFiles関数を編集できる場合は、

var colorboxOptions = GetColorboxOptions();
colorboxOptions.onOpen = onViewFileClicked;
$("a.link_file").colorbox(colorboxOptions);

ajax呼び出しの成功関数で。

または、追加することもできます

async: false,

Ajaxコールに。他のエラーが発生する可能性があるため、個人的にはこのルートをお勧めしませんが、この関数を複数の目的で使用している場合は、これが最善の選択肢となる可能性があります。

于 2012-05-31T16:23:11.620 に答える
1
$(function () {
    loadFiles('Reports');
});

function loadFiles(folder) {
$.ajax({
    url: '/Api/Files/' + folder,
    type: "GET",
    contentType: "application/json; charset=utf-8",
    success: function (result) {
        console.log(result);
        $('#Container').setTemplateURL("/Templates/FileList.htm", null, { filter_data: false });
        $('#Container').processTemplate(result);

        var colorboxOptions = GetColorboxOptions();
        colorboxOptions.onOpen = onViewFileClicked;
        $("a.link_file").colorbox(colorboxOptions);
    }
});

約束はしませんが、ajax呼び出しが戻った後にcolorBoxコードを実行する必要があると思います。上記のように、成功呼び出しに配置してみてください。

于 2012-05-31T16:58:52.303 に答える