• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【jQuery】要素が消えずに困っています。)

【jQuery】カレンダー内のポップアップ表示に関する問題

このQ&Aのポイント
  • jQueryのFullCalendarをカスタマイズしている際に、カレンダー内のポップアップ表示に関する問題が発生しました。
  • ポップアップは表示されてはいるものの、ポップアップが出ている状態でカレンダー外の部分をクリックすると再表示されてしまいます。
  • 解決方法を探して試行錯誤していますが、うまくいっていません。ご教示頂けると幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

いくつか直します。 1、bodyへのイベント設定の動作を変更。 $('body').click(function(e) { $('.tooltiptopicevent').css('top', e.pageY + 10); $('.tooltiptopicevent').css('left', e.pageX + 20); }); ↓これだと、すべてのクリックで要素を表示してしまう。 これをすべてのクリックで非表示にするように変更。 $('body').click(function(e) { $('.tooltiptopicevent').hide(); }); 2、予定がクリックされた場合の動作を変更。 eventClick: function (data, event, view) { $('.tooltiptopicevent').html('イベント名 ' + ': ' + data.title + '</br>' + '詳細 ' + ': ' + [data.description,""][1*(data.description==undefined)]); $('.tooltiptopicevent').show(); }, ↓詳細表示+詳細表示場所の調整&bodyへのイベントバブリングの抑制。 eventClick: function(data, event, view) { $('.tooltiptopicevent').html('イベント名 ' + ': ' + data.title + '</br>' + '詳細 ' + ': ' + [data.description, ""][1 * (data.description == undefined) ]); $('.tooltiptopicevent').css('top', event.pageY + 10); $('.tooltiptopicevent').css('left', event.pageX + 20); $('.tooltiptopicevent').show(); event.stopPropagation(); }, イベントのバブリングを止めることで、bodyに設定した処理が 動かないようにする。

hit-machine
質問者

お礼

おかげさまで、無事に解決できました! 本当に助かりました! ありがとうございました!

その他の回答 (2)

回答No.2

そうですか…一度ブラウザ側のデバッグで流れを確認していただくほうがいいかもしれないですね。 自分のイメージだと、カレンダー外のクリックでは $('.tooltiptopicevent').hide(); $('#calendar').fullCalendar({ editable: true, のhideを通したいのかなと思っているのですが、もしかしたらクリックされているところがカレンダー内の判定になっているかもです。 その場合はdayClickを通らない判定になってポップアップが表示されているのだと思います。 カレンダー外をクリックした時にポップアップ表示前と表示後で通る処理がどこになるかで見れば原因が分かるかもしれません。

hit-machine
質問者

お礼

お礼を見落としており、遅くなってしまいすみませんでした。

回答No.1

ソースを眺めただけの状態での回答になるので 参考になるか微妙ですが、最初の辺りで $('body').click(function(e) { $('.tooltiptopicevent').css('top', e.pageY + 10); $('.tooltiptopicevent').css('left', e.pageX + 20); }); $('.tooltiptopicevent').hide(); の部分で追加した要素を隠す処理をいれていますよね。 ここがうまく動いていない気がします。 最初に何もポップアップが表示されていないときに 枠外を押したときにはちゃんと何も表示されない状態に なっていますか?

hit-machine
質問者

お礼

お礼を見落としており、遅くなってしまいすみませんでした。

hit-machine
質問者

補足

ご回答ありがとうございます。 ポップアップの表示がないときに、 枠外を押しても何も表示されていません。 私も最初の $('body').click(function(e) { がおかしいのかと思い色々試してはいるのですが、 改善されませんでした。

関連するQ&A