私は ajax 呼び出しを実行し、ajax 呼び出しが完了するまでコードが実行されないようにしたいと考えています。
このコードがあるとします
.on('pageloadfailed', function(event){
//if I move event.preventDefault to here the popup doesn't show. But I only want
//to prevent the default bahaviour if the condition in the ajaxe response if met.
$.when(ajax1()).done(function(response){
if(resposne.success == true){
event.preventDefault();
}
});
function ajax1() {
return $.ajax({
url: "someUrl",
dataType: "json",
data: yourJsonData,
...
});
}
alert("test");
}
アラートは常に発生します。「when」メソッド内のコードが false を返さない場合にのみ発生させたいと思います。
回答ありがとうございます。もう少し詳しく説明します。
私はjqueryモバイルを使用しています。また、ページの読み込みが失敗すると、jqm はユーザーに更新を指示するポップアップを表示します。ただし、実際には自分でエラーを処理したい場合があります。
そのため、pageloadfailed イベントが発生したときに、ajax を介して何かをチェックすることはありませんでした。場合によっては、起こったことを処理しますが、他の場合は、ただ続行したいだけです。
アラートは実際には私のコードにはありません。ポイントを説明するためにそれを使用しようとしていました。