2

私はうまく機能している次のjs関数を持っています:

$(function () {
    $(".country").click(function () {
        var countries = Array();
        $(".country:checked:enabled").each(function(i, element){
            countries[i] =  $(element).attr("id");
        });
        countries_string = countries.join(",");            
        $('#scroll').scrollTop(0);
        $.ajax({
            type: 'POST',
            url: '@Url.Action("CheckBoxCountryFilter", "CheckBox")',
            data: {countries:countries_string},
            success: function (result) {
                //console.log(result);
                $("#wineResult").html(result);
            }             
        });
        if(countries.length > 0){
            $("#countryImage").html('<img src="/Content/Images/icons/check.png">');            
        }else{
            $("#countryImage").html('');
        }
        $.ajax({
            url: '@Url.Action("ArtikelNumber", "CheckBox")',
            type: 'POST',                
            success: function (result) {
                $("#artikelNumber").html(result);
            }
        }); 
    });
});

しかし、最初の$ .ajax()が最初に実行されないという問題があります。最初の$ .ajax()が最初に実行されるようなことを行うことはできますか?ありがとうございました

4

1 に答える 1

6

$.ajax2番目の呼び出しをsuccess最初の呼び出しに移動することでそれを強制できます

$(function () {
    $(".country").click(function () {
        var countries = Array();
        $(".country:checked:enabled").each(function(i, element){
            countries[i] =  $(element).attr("id");
        });
        countries_string = countries.join(",");            
        $('#scroll').scrollTop(0);
        $.ajax({
            type: 'POST',
            url: '@Url.Action("CheckBoxCountryFilter", "CheckBox")',
            data: {countries:countries_string},
            success: function (result) {
                //console.log(result);
                $("#wineResult").html(result);
                $.ajax({
                    url: '@Url.Action("ArtikelNumber", "CheckBox")',
                    type: 'POST',                
                    success: function (result) {
                        $("#artikelNumber").html(result);
                    }
                }); 
            }             
        });
        if(countries.length > 0){
            $("#countryImage").html('<img src="/Content/Images/icons/check.png">');            
        }else{
            $("#countryImage").html('');
        }
    });
});
于 2012-11-16T13:54:41.273 に答える