1

スライダーのjqueryにすべての外部ページをロードしています。問題は、別の順序でロードされることです。私がする必要があるのは、ページの読み込みを順序付けることです

$.get("page1.php", function( my_var ) {
    $('#slider').append($('.content', my_var));
});
$.get("page2.php", function( my_var ) {
    $('#slider').append($('.content', my_var));
});
$.get("page3.php", function( my_var ) {
    $('#slider').append($('.content', my_var));
});

page3 が page2 の前に読み込まれることがあります。

4

4 に答える 4

1

これは、非同期実行を扱っているために発生します。Ajax 呼び出しの順序は保証されません。前のもののコールバック内ですべての $.get を呼び出します。何かのようなもの:

$.get("page1.php", function( my_var1 ) {
    $('#slider').append($('.content', my_var1 ));
    $.get("page2.php", function( my_var2 ) {
        $('#slider').append($('.content', my_var2 ));
        $.get("page3.php", function( my_var3 ) {
            $('#slider').append($('.content', my_var3 ));
        });
    });
});
于 2012-09-03T15:14:24.070 に答える
1

1つずつロードできます。

$.get("page1.php", function( my_var ) {
    $('#slider').append($('.content', my_var));
    $.get("page2.php", function( my_var ) {
        $('#slider').append($('.content', my_var));
        $.get("page3.php", function( my_var ) {
              $('#slider').append($('.content', my_var));
         });
    });
});

または、ラップ コンテナーを使用.loadできる場合は、url でセレクターを使用できるメソッドを使用できます。このソリューションでは、3 つのコンテンツを同時にロードできますが、位置は固定されています。

var slider = $('#slider');
$('<div>').appendTo(slider).load('page1.php .content');
$('<div>').appendTo(slider).load('page2.php .content');
$('<div>').appendTo(slider).load('page3.php .content');
于 2012-09-03T15:16:30.097 に答える
1

非同期メソッドであるため、このように機能し$.getます(ajaxリクエストの省略形です)。メソッドを使用$.whenして、リクエストが行われたかどうかをテストできます。

var getPage1 = $.get("page1.php", function( my_var ) {
    $('#slider').append($('.content', my_var));
});

// you can pass 1 or more deffereds
$.when(getPage1).done(function() {
    // do something
});
于 2012-09-03T15:16:35.343 に答える
1

呼び出しをネストすることができます。ページの読み込みが終了したら、次のページを読み込みます..次のようなもの:

$.get("page1.php", function( my_var ) {
    $('#slider').append($('.content', my_var));
    $.get("page2.php", function( my_var ) {
        $('#slider').append($('.content', my_var));
        $.get("page3.php", function( my_var ) {
            $('#slider').append($('.content', my_var));
        });
    });
});
于 2012-09-03T15:16:42.937 に答える