6

ユーザーの選択に基づいて、フルカレンダーでイベントを選択しようとしています。

例: ユーザーがクラス A を選択すると、同じ ID を持つすべてのクラスが緑色に変わります (適用された className を使用)。

ID で正常に選択できる他のイベントにクラスを適用するのに問題があります。私の問題は、イベント オブジェクトと jQuery オブジェクトを組み合わせることだと思います。

サンプルコード:

eventClick: function(event) {
  $(this).addClass("reg_selected");  //this works fine on selected event
  var selectedID = event.id
  alert(selectedID);                 //get event.ID, and use it to find similar ones.
  var similarEvents = $("#calendar").fullCalendar('clientEvents',selectedID).addClass("reg_selected");

私が得るエラーは次のとおりです。

  addClass is not a function

このループ方法も試しましたが、同じエラーが発生しました。

for (var i = 0; similarEvents.length > i ; i++){
    alert(similarEvents[i].title);
    similarEvents[i].className("reg_selected");
}

alert() は機能しましたが、className() は上記と同じエラーを生成しました

4

4 に答える 4

4

clientEventsは、一致するオブジェクトの配列を返します。配列(あなたの場合はsimilarEvents)を反復処理し、各アイテムに対してaddClassを呼び出す必要があります

更新: ID を使用して複数のイベントを更新することにも問題があります。代わりにフィルター関数を使用することをお勧めします。

eventClick: function(event) {
    var similarEvents = $("#calendar").fullCalendar('clientEvents', function(e) { return e.test === event.test });

    for (var i = 0; similarEvents.length > i ; i++){
            similarEvents[i].className = 'reg_selected';
            $('#calendar').fullCalendar('updateEvent', similarEvents[i]);
        }
},

jsfiddleを参照してください

于 2013-03-19T23:46:22.497 に答える
3

fullcalendar add イベント クラス、id、およびタイトルについては、こちらを参照してください。

if($('#eventTitle').val() == "Avilable") {
   eventClass = "avilable";
}else {
   eventClass = "unavilable";
}

$myCalendar.fullCalendar('renderEvent', {
  id:response,
  title: title.val(),
  start: start.val(),
  end: end.val(),
  allDay: true,
  className: eventClass,
  color: color
  }, true
);
于 2016-06-16T05:37:44.350 に答える