一覧表示後に一覧中の要素を取得するには

kintoneJSを触り始めて1週間余りの初心者です。

「イベントカレンダーver1.4」を使用して、レコードをカレンダー形式で表示し、イベントクリック時に関連する別アプリのレコードをポップアップ表示したいと考えています。

そこで、クリックイベントを拾うため、アプリ側JSに以下処理を記述しましたが、拾えませんでした。

('.fc-event’はカレンダー上のイベント表示要素)


jQuery.noConflict();
(function($) {
'use strict';

kintone.events.on('app.record.index.show', function(event) {
$('.fc-event').on('click', function(event) {
console.log('test');
  });
});

document.addEventListener('DOMContentLoaded', function(event) {
console.log('※イベント発生 - DOMContentLoaded');
});

})(jQuery);

jQuery(window).load(function() {
'use strict';
console.log('loadイベント発生');
});

 ----
イベントが
1)jQuery(window).load()やdocument.addEventListener(‘DOMContentLoaded’)が発生
2)アプリ側の’app.record.index.show’が発生
3)プラグイン側の’app.record.index.show’が発生
の順番で発生しており、‘.fc-event’要素が生成される前に
$(’.fc-event’).on(‘click’)
としているのが原因なのかな、と考えています。

一覧表示後に一覧中の要素を取得方法について、
良い方法をご存じでしたら、ご教示お願いします。

nfujii さん

イベントカレンダープラグインとは別のJSで、イベントカレンダープラグインが表示しているイベントのクリックを拾う方法は無くもないですが、
少々概念が複雑なので、ここではシンプルにイベントカレンダープラグイン自体のJSを書き換えてプラグイン自体を再作成する方法をおすすめします。

尚、イベントカレンダープラグインが内部的に使用しているFullCalendarでイベントクリックを拾う場合は、
通常はFullCalendar自体のイベントクリックのイベントを拾うのが定石です。

https://fullcalendar.io/docs/eventClick

プラグインの作り方やFullCalendarの理解がある程度必要になりますが、ご確認ください。

 

ご回答ありがとうございます。

質問に明記しておりませんでしたが、イベントカレンダープラグインは複数アプリで使用しており、今回の機能が必要なのは1アプリのみとなります。

「このアプリ専用でプラグインを再作成する」は、プラグインのメンテナンス面で不利となるため、できるだけ避けたいと考えております。

結局、プラグイン側で処理を実装することにしました。

※プラグインの設定画面にチェックボックスを追加し、該当アプリのプラグイン設定でONした時だけ上記処理を実施する、という仕様で処理を共通化しました。