JSとjQueryには本当に奇妙な問題があります。私はブレークポイントを追加するときjavascriptはブレークポイントでのみ実行されます
$('#skip').click(function(e) {
savePhoto('skip');
showNextPlace();
photo_changed = 0;
return false;
});
showNextPlace()
とphoto_changed = 0;
にのみ実行されます。 savePhoto();
のコードは非常に基本的です。私は、places配列の要素の数とステータスに応じてリクエストを送信します。
function savePhoto(status)
{
if (places.length <= 5)
{
// load more places
$('#loadmore').val('1');
}
// Don't send a request on skip unless we need more places
if (status != 'skip' || $('#loadmore').val() == 1)
{
$.ajax({
url: "url" + status,
cache: false,
data: $('#form_photo').serialize(),
success: function(results){
// dont load more places until we have few
$('#loadmore').val('0');
if (results != '[]')
{
for (var i in results)
{
places.push(results[i]);
}
}
}
});
}
}
なぜこのようなことが起こるか、どうすれば問題をよりよくデバッグできますか?ブレークポイントがある間
'success'コールバックでコードをコメントアウトすると動作しますか?何かエラーがありますか?いくつかのロギングを関数呼び出しに追加して、実際に何が実行されているかを確認します。たとえば、 'console.log( 'showNextPlace')'から 'showNextPlace'関数です。 – Heikki