1

クロムで非常に奇妙な問題に直面しています。

私のコードは

$('#import').text("Importing...");
$('#import img').removeClass("hidden");

Server.postService("tests", row_datas, function(data) {
    // some stuff here
});

ポスト アクションが実行された後、テキストと隠しクラスが削除されています。コードはFirefoxで正常に動作しています。

4

2 に答える 2

1

唯一必要だったのは

Server.async = true 

サーバー呼び出しの前。

于 2013-04-23T06:53:21.810 に答える
0

非同期関数は出現順に起動しますが、終了した順に戻ります。textこれらの単純なメソッドがオブジェクトでremoveClass実行しているものよりもゆっくりと戻るのは奇妙なことですが、それは可能だと思います。Serverの前に最初の2行を表示する必要がある場合はpostService、jQueryを試してみてくださいdeferred.promiseこれは、可能性を示すフィドルと、検査するコードです。

function firstThing (){
    var dfd = new jQuery.Deferred();
    $('#import').text("Importing...");    
    $('#import img').removeClass("hidden");
    dfd.resolve();
}

$.when( firstThing() ).then(
    function() {
        Server.postService("tests", row_datas, function(data) {
            // some stuff here
        });
    }
)

ちなみに、コードのロジックには、のを設定することで問題があります。textクラスがあった#importものはすべて存在しなくなりますが、それは重要ではない可能性があります。imghidden

アップデート

ajaxの使用について尋ねる私のコメントに対するあなたの応答に気づいたら、asyncオプションについて読んで、あなたがしていることがイベントをブロックしているかもしれないし、していないかもしれないことを確認することをお勧めします。

また、 jQuery ajaxコールバック、特にerror、、、successおよびcomplete(現在、jQuery 1.8 + 、、、、failおよびdone)について読むことをお勧めしますalways

于 2012-12-12T04:47:54.997 に答える