質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
jQueryプラグイン

jQueryの拡張機能。 様々な種類があり、その数は膨大です。公開済みのプラグインの他にも、自作することもできます。 jQueryで利用できるようにしておくだけで、導入およびカスタマイズが比較的容易に行なえます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

5177閲覧

FullCalendarの重複表示について

kirin311

総合スコア53

jQueryプラグイン

jQueryの拡張機能。 様々な種類があり、その数は膨大です。公開済みのプラグインの他にも、自作することもできます。 jQueryで利用できるようにしておくだけで、導入およびカスタマイズが比較的容易に行なえます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

1クリップ

投稿2018/09/11 08:14

編集2018/09/11 08:50

すみません。
行き詰っておりまして、また皆様のお力を借りしたく書き込ませていただきます。

今回、FullCalendarというJQueryプラグインを使っています。

前提・実現したいこと

問題対処したい。

発生している問題

前提として、今月と来月の2件だけのイベント登録があります。
今月は、問題ないのですが来月の登録していたイベントの表示が2回増える(2回以上はないです)

例)
2018年9月には1件
2018年10月には1件

だけのはずが

2018年10月でF5更新ボタンを押すと

2018年9月には1件
2018年10月には2件表示

されます。

更新ではなくURL直接打って入りなおすと、
2018年9月には1件
2018年10月には1件

と元通りですが、またF5更新ボタンで復活してしまいます。

F5ボタン押したりしても出ないようにするには何らかの方法がありますでしょうか?

該当のソースコード

javascript

1 <script> 2 <!-- 3 $(window).on('load', function() { 4 $('#calendar').fullCalendar({ 5 header: { 6 left: 'prev,next,today', 7 center: 'title', 8 right: 'month,agendaWeek,agendaDay,listWeek' 9 }, 10 events: function(start, end, timezone, callback) { 11 $.ajax({ 12 type: 'POST', 13 url: 'json/events.json', 14 dataType: 'json', 15 success: function (result) { 16 // console.log(result); 17 var events=[]; 18 result.forEach(function( result ) { 19 $('#calendar').fullCalendar('renderEvent', result, false); 20 }); 21 callback(events); 22 } 23 }); 24 } 25 }); 26 27 var date = $.cookie("key_date"); 28 29 if(date){ 30 // console.log(date); 31 $('#calendar').fullCalendar('gotoDate', date ); 32 } else { 33 $('#calendar').fullCalendar('today'); 34 } 35 36 $('.fc-prev-button,.fc-next-button,.fc-today-button').click(function(){ 37 var date = $('#calendar').fullCalendar('getDate'); 38 $.cookie("key_date", date, {expires: 1}); 39 }); 40 }); 41 --> 42 </script>

試したこと

console.log(result);で確認してみましたところ何故か、1件のはずか2件表示されているので具体的な対処が不明です・・
events: function(start, end, timezone, callback) {
のcallbackを消したりしてみましたが、解決出来ませんでした・・・

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

x_x

2018/09/13 09:14 編集

resultはajaxの結果なのでサーバー処理を見てみたらどうでしょうか? また、空のeventsのままcallback()を呼んでいるのも気になります。
guest

回答1

0

ベストアンサー

events内で'renderEvent'を呼ぶ必要はなく、単に

JavaScript

1callback(result);

でよさそうです
https://fullcalendar.io/docs/events-function

投稿2018/09/13 09:34

x_x

総合スコア13749

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kirin311

2018/09/13 23:52

正直諦めかけておりましたが、successにcallbackだけで無事解決出来ました。 ありがとうございます。 fullcalendarのドキュメントは読んで、renderEventを使っていたのですが、説明不足感が強くてあまり理解が出来てなかったようです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問