ボタンクリックの関数が残ってしまう。(新)
10日ほど前に、ぐるなびの「前の結果」「次の結果」ボタンの表示の問題で投稿した者です。
Unarist様のおかげで、その問題は解決しました。ありがとうございました。
今度は、「先頭へ」と「最後へ」のボタンを作り、クリックすれば、それぞれ先頭と最後のページが表示されるようしたいです。「先頭へ」は以下のコードで、簡単に思い通りの結果が得られました。
jQuery("#load_first").on('click', function() {
params_shop.offset_page = 1; // 先頭のページなので、1を指定
jQuery.getJSON(url_rest, params_shop, function(result) {
resultLoopback(result); // 500件ごとに飲食店を表示(飲食店に連番でつけた番号、名前、地域、最寄駅など)
resultNum(result); // 現時点での飲食店の表示件数(トータル)を表示
});
});
ところが、「最後へ」については、以下のコードではうまくいかないようで、苦戦をしています。
jQuery("#load_last").on('click', function() {
jQuery.getJSON(url_rest, params_shop, function(result) {
if(result.total_hit_count % 500 == 0) {
params_shop.offset_page = Math.floor(result.total_hit_count / 500);
} else {
params_shop.offset_page = Math.floor(result.total_hit_count / 500) + 1;
}
resultLoopnext(result);
resultNum(result);
});
});
if(result.total_hit_count % 500 == 0) {
の部分の処理については、こうです。
飲食店のトータルのヒット数(例えば、1000件、2000件など、めったにないが)を500で割った時に、余りが出なければ、params_shop.offset_page
(現在のページ番号は)
result.total_hit_count / 500
(トータルのヒット数を500で割る) の値になる。
余りが出れば(たいてい、余りが出るものである)、params_shop.offset_page
(現在のページ番号は)
result.total_hit_count / 500 + 1
(トータルのヒット数を500で割った値に1を足す) の値になる。
if(result.total_hit_count % 500 == 0) {
からの部分を
jQuery.getJSON(url_rest, params_shop, function(result) {
の処理の前に記述
すべきだと思って、最初はそのように記述したのですが、「最後へ」ボタンをクリックしても、まったく反応が
ありませんでした。
そこで、jQuery.getJSON(url_rest, params_shop, function(result) {
の中に記述すると
反応がありました。ですが、飲食店に連番でつけた番号が変わるだけで、肝心の店の名前や地域、最寄駅などが変わってくれません。
このように、肝心の部分が更新された状態で、表示させたいのですが、どうしたらいいでしょうか?
javascriptの全体のコードは、前回「ボタンクリックの関数が残ってしまう」の際に、投稿していますので、それを参考にしていただければと思います。
状況を把握していただいている unarsit 様に、ご返答願えたらと思いますが、よろしくお願いします。