重複の可能性:
AJAX応答テキストを返す方法は?
getJsonObject関数に少し問題があります。コードに実行させたいのは、[次へ]をクリックするたびに、getJsonObject関数が記事の次のページを取得し、domの準備ができたら、記事の見出しを表示することです。ただし、エラーが発生した場合(ページが不足した場合など)、pageNrはそれ以上インクリメントされません。問題は、alert('return is 0)'が表示されても、getJsonObject関数が0を返さないことです。
これが私のコードです:
<html>
<head>
<title>World News</title>
<link rel="stylesheet" type="text/css" href="css/fullWindow.css" />
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.9/jquery-ui.js" type="text/javascript"></script>
<script src = "https://raw.github.com/janl/mustache.js/master/mustache.js" type = "text/javascript"></script>
<body>
<section id="mainContent">
<div class="prevNext floatRight"><a id="prev" href="#">prev</a> | <a id="next" href="#">next</a></div>
<section id="news">
<p id="headline">This is my headline for the moment.</p>
</section>
</section>
<script type="text/javascript">
$(document).ready(function(){
var pageNr = 1;
var sectionName = "science";
var err = '2';
$("#next").click(function(){
/* it removes the tag 'p' with id="headline" and inserts some other content */
$.when($('#headline').remove()).then(function(){
err = getJsonObject(sectionName, pageNr+1);
alert('err: '+err);
/* if there is no error go to the next page */
if(err == '0'){
pageNr++;
}
});
});
});
function getJsonObject(sectionName, pageNr){
$.getJSON('http://content.guardianapis.com/search?q=' + sectionName + '&page=' + pageNr + '&page-size=5&order-by=relevance&format=json&show-fields=all&date- id=date%2Flast7days&api-key=gd6ndfndjyr8sd2p3rq3ubkg&callback=?',
function(data){
var results;
/* I get status == error when I finish iterating the pages*/
if(data.response.status != 'error'){
$('#news').append('<p id="headline">'+data.response.results[pageNr].fields.headline+'</p>');
alert('return is 0');
return '0';
}else{
alert('return is 1');
return '1';
}
});
}
</script>
</body>
</html>
なぜリターンが機能しないのか、何か考えはありますか?ありがとう。