0

特定の拡張子を持つ画像が存在するかどうかを確認したいのですが、存在する場合は拡張子に「不明」であることを警告したいと思います。コードの検出部分は正常に動作しますが、最初に imagevar にアラートを出すと、var は空になり、別のアラートを追加すると、var は正しい値になります。

$.get コマンドが完了するまでに時間がかかりますか、それとも遅延の原因はどこにありますか?

var extension = 'jpg';
var url = 'someimagefile.' + extension;
var imagevar = '';

$.get(url)
  .done(function() {
   imagevar = extension; 
    })
  .fail(function() {
    imagevar = 'unknown'; 
    });

alert(imagevar);
alert(imagevar);
4

2 に答える 2

0

imagevar に値を割り当てた後、コールバックでアラートを使用する必要があります。そうしないと、$.get が完了する前にアラート コマンドが起動する可能性が高くなり、imagevar に値が割り当てられます。

そのため、$.get の結果を必要とするコードは必ずコールバックに配置してください。

var extension = 'jpg';
var url = 'someimagefile.' + extension;
var imagevar = '';

$.get(url)
  .done(function() {
   imagevar = extension; 
   alert(imagevar);
    })
  .fail(function() {
    imagevar = 'unknown'; 
    alert(imagevar);
    });
于 2013-08-09T13:38:42.707 に答える
0

アラート センテンスは、get 呼び出しが戻る前に発生します。.done と .fail で指定された関数は、応答が返ってきたら呼び出されます。現在、 $.get() はサーバーに送信され、その直後に alert() 文が実行されてから応答が返されます。試す:

$.get(url)
    .done(function() {
        alert(extension); 
    })
    .fail(function() {
        alert('unknown'); 
    });
于 2013-08-09T13:40:36.297 に答える