私は Fullcalendar.js を使用しており、イベントごとに、指定された機能 (医療予約の確認時にステータスを変更する) を行うシンプルなコンテキストメニューを設定しています。次のコード サンプルは、1 日 (eventRender) にイベントがある場合にのみ正常に動作します。
eventRender: function(event, element) {
var originalClass = element[0].className;
element[0].className = originalClass + ' hasmenu';
$('#calendar2').contextmenu({
delegate: '.hasmenu',
menu: [{
title: 'Cambiar Estado',
cmd: 'cestado',
action: function(ui){ui.cmd = "cestado";confirmarCambioEstado(event);}
}, {
title: 'Atender Cita',
cmd: 'acita',
action: function(ui){ui.cmd = "acita";if(event.color=="#0088cc"){
actualizarEstado(3,event.id);
event.color = "yellowgreen";
calendarJ.fullCalendar('rerenderEvents');
hrefHCE.href = "HCE?idCita="+event.id;
hrefHCE.click();
}else{
advertenciaEstado();
}}
},{
title: 'Cancelar Cita',
cmd: 'ccita',
action: function(ui){ui.cmd = "ccita";event.color = "green";
confirmarCambioEstado(event);}
}, {
title: 'Eliminar Cita',
cmd: 'ecita',
action: function(ui){ui.cmd = "ecita";confirmarEliminar(event);}
}],
beforeOpen: function (event,ui) {
ui.menu.zIndex($(event.target).zIndex() + 1);
}
});
},
eventDrop: function(event, delta, revertFunc){
confirmarCambioFecha(event,revertFunc);
},
eventAfterAllRender: cambiarFuncion
});
しかし、私が望むように機能するのは1日だけです。同じ日に2つ以上のイベントがある場合、contextMenuで関数を適用すると、その日の最後のイベントでのみ関数が作成されます(3つのイベントがある場合、関数は最後のイベントに適用されます。指定したイベントに関数を適用したい)
私が示している問題が発生することなく、各イベントに同じ処理を適用するにはどうすればよいですか? forEach 文を入れてみましたが、何をすればよいかわかりません