2012-02-02 77 views
1

私は週ビューのFullcalendarを持っています。すべて私が同じ日と時間で2番目のイベントをドロップすると、Fullcalendar:1つのイベントで同じ日にグループイベントを実行する

 drop: function(date, allDay) { // this function is called when something is dropped 

      // retrieve the dropped element's stored Event Object 
      var originalEventObject = $(this).data('eventObject'); 

      // we need to copy it, so that multiple events don't have a reference to the same object 
      var copiedEventObject = $.extend({}, originalEventObject); 

      // assign it the date that was reported 
          copiedEventObject.id = idevento++; 
      copiedEventObject.start = date; 
      copiedEventObject.allDay = allDay; 

          copiedEventObject.className = 'newEvent'; 
          copiedEventObject.qty = '1'; 



          //buscar eventos 
          var listevents = $('#calendar').fullCalendar('clientEvents',function(event) { 
           if(date.getFullYear()!=event.start.getFullYear())return false; 

           if(date.getMonth()!=event.start.getMonth())return false; 

           if(date.getDay()!=event.start.getDay())return false; 

           if(date.getHours()!=event.start.getHours())return false;  


           //aparte tienen que ser del mismo tipo 
           if(event.title!=copiedEventObject.title)return false; 

           return true; 
          }); 


          if(typeof listevents === 'object'){ 

           //augmentar la cantidad 
           eventoantiguo = listevents[0]; 

           copiedEventObject.qty = parseInt(eventoantiguo.qty)+1; 

           //borrar el objeto antiguo 
           $("#calendar").fullCalendar('removeEvents', eventoantiguo.id); 

          } 

      // render the event on the calendar 
      // the last `true` argument determines if the event "sticks" (http://arshaw.com/fullcalendar/docs/event_rendering/renderEvent/) 


          $('#calendar').fullCalendar('renderEvent', copiedEventObject, true); 


      // is the "remove after drop" checkbox checked? 
      if ($('#drop-remove').is(':checked')) { 
       // if so, remove the element from the "Draggable Events" list 
       $(this).remove(); 
      } 

     }, 

しかし:ドロップ機能で

function slotSegHtml(event, seg) { 

[...] 

    html += 
     " class='" + classes.join(' ') + "'" + 
     " style='position:absolute;z-index:8;top:" + seg.top + "px;left:" + seg.left + "px;" + skinCss + "'" + 
     ">" + 

        "<span class='fc-event-inner fc-event-qty'>"+htmlEscape(event.qty)+"</span>"+        

[...] 
    return html; 
} 

私はイベントで番号を表示するようにfullcalendarを変更しましたイベントは消滅します。

私の英語のために申し訳ありません。

私は責任があると思います。 $( '#calendar')。fullCalendar( 'renderEvent'、copiedEventObject、true);

放火犯は言う: キャッチされない例外TypeError:オブジェクト2は、私は、この行の問題を解決一切方法 'を置換' は、この機能で

function htmlEscape(s) { 
     return s.replace(/&/g, '&amp;') 
     .replace(/</g, '&lt;') 
    .replace(/>/g, '&gt;') 
    .replace(/'/g, '&#039;') 
    .replace(/"/g, '&quot;') 
    .replace(/\n/g, '<br />'); 
} 

(fullcalendar.js)

答えて

1

を持っていません。

copiedEventObject.qty = (parseInt(eventoantiguo.qty)+1)+'';//se tiene que convertir a string! 

関数 "function htmlEscap e(s){"" s "は文字列である必要があります

ありがとうございます!完全なカレンダーの

1

使用Eventlimitは、 は次のようにあなたがグループに一日のすべてのイベントが、その後わずか1にイベントの制限を設定したいとします

$('#divCalendar').fullCalendar({      
         theme: true, 
         eventLimit: true, // for all non-agenda views 
         eventLimit: 1, 
...... 
further code 
関連する問題