外部ソース(ajax)から情報を取得するためのjQueryスクリプトがありますが、その間にローダーイメージが表示されます。行が実行されないので、JQueryはそれを好きではないようです。実行中は、入力を無効にする必要がありますが、そのコードはスキップされます。jqueryはコードのいくつかの行をスキップしているようです
私のjQueryコード:
$("#pnum").keyup(function(){
nieuw = $(this).val();
code = $('#pnum').val();
$("#pnum").css("background-color", "#FFC080");
if (oud != nieuw && option != 0 && code.length >= 1 && code.length <=4) {
$("#loaderImage").show();
$("input").prop('disabled', true);
$("#mode").prop('disabled', true);
$('#pnumTable').empty();
if (code.length >= 1) {
$.ajax({
url: "http://sistermans.diskstation.me/NetBeans/Postcodes/api-postcode.php",
dataType: "jsonp",
jsonpCallback: "postcodeResults",
data : {mode: option, pnum: code }
});
}
oud = nieuw;
$("#loaderImage").hide();
$("input").prop('disabled', false);
}
if (code.length < 1 || code.length > 4) {
$("#pnum").css("background-color", "yellow");
}
});
ローダイメージと答えがポップアップする必要があり、HTMLの一部:
<div id="loaderImage">
<p>Haal de gegevens op volgens methode : <br>
<div id="keuze"></div><p>
<p><img src="web_images/ajax-loader-hscrew.gif"></p>
</div>
<table>
<div id="pnumTable">
</div>
</table>
答えはpnumTable divの中に表示されます。これは常に働きます。 <div id="keuze">
は他の場所で扱われます。
私はたぶん間違っていましたが、私はどこにいるのでしょうか。
私を助けてくれる誰かがいますか?
アヤックスので、コードはそれが行われるまで待つことを停止することはありません非同期です。ローダーの '.hide()'メソッドは即座に呼び出されるため、表示されません。 Ajax呼び出しが終了したときに発生させたいコードをコールバック関数に追加する必要があります。 – JJJ
[this](http://stackoverflow.com/a/7613888/863110)の回答をお読みください。 –