2014-02-12 53 views
1

我正在使用fullcalendar插件與資源視圖。 (http://www.ikelin.com/jquery-fullcalendar-resource-day-view/)。jQuery FullCalendar:當點擊創建的事件消失

我試圖在單擊空單元格時顯示引導表單模式。 (defaultView:'resourceDay')。

當我點擊一個空單元格模式打開,當我點擊保存,新事件將被添加到日曆。 但是有一個小錯誤。

如果我點擊模式/瀏覽器窗口,事件塊內的任何地方將消失(我可以在日曆上點擊,這將暫時創建空單元格的彩色塊)。

如果我點擊保存,它將被重新添加到日曆中。

由於某些原因,如果我將FullCalendar的renderEvent置於點擊函數中,就會發生此錯誤。 如何解決這個問題?謝謝!

(我已經使用了jQuery UI的對話和測試,但它顯示了同樣的結果對我來說)的fullcalendar的

回撥JS功能

select: function(start, end, allDay, event, resourceId) {//select cell (empty) 

       var title = 'Sample event';// event name 

       $('#add_appt').modal();//open the modal 

       $('#save_appt').click(function(e) {//click on the save button 
        //e.preventDefault(); 

        if (title) {//Add the event 
         console.log("CONSOLE select event " + event + title + ", start " + start + ", end " + end + ", allDay " + allDay + ", resource " + resourceId); 

         calendar.fullCalendar('renderEvent', 
           { 
            title: title, 
            start: start, 
            end: end, 
            allDay: allDay, 
            resourceId: resourceId 
           }, true); // make the event "stick" as true 

        } 
        console.log("closing"); 
        calendar.fullCalendar('unselect'); 

        $('#add_appt').modal('hide');//close the modal 
       }); 
    } 

HTML引導模式

<div class="modal fade" id="add_appt" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> 
    <div class="modal-dialog"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> 
       <h4 class="modal-title" id="myModalLabel">Add New Appointment</h4> 
      </div> 
      <div class="modal-body"> 
<!--form --> 
       <form id='appt_from' class="form-horizontal"> 
        <!-- Text input--> 
        <div class="form-group"> 
         <label class="col-md-3 control-label" for="textinput">Text Input</label> 
         <div class="col-md-8"> 
          <input id="textinput" name="textinput" type="text" placeholder="placeholder" class="form-control input-md"> 
         </div> 
        </div> 
        <!-- Select Basic --> 
        <div class="form-group"> 
         <label class="col-md-3 control-label" for="selectbasic">Select Basic</label> 
         <div class="col-md-8"> 
          <select id="selectbasic" name="selectbasic" class="form-control"> 
           <option value="1">Option one</option> 
           <option value="2">Option two</option> 
          </select> 
         </div> 
        </div> 
        <!-- Textarea --> 
        <div class="form-group"> 
         <label class="col-md-3 control-label" for="textarea">Text Area</label> 
         <div class="col-md-8">      
          <textarea class="form-control" id="textarea" name="textarea">default text</textarea> 
         </div> 
        </div> 
       </form> 
<!--/ from --> 
      </div> 
      <div class="modal-footer"> 
       <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
       <button id='save_appt' type="button" class="btn btn-success">Save</button> 
      </div> 
     </div> 
    </div> 
</div> 

回答

1

我找到了解決方案。我將取消選擇自動選項設置爲false。所以當我點擊瀏覽器中的任何地方時,事件塊不會消失。

只有當我點擊接近保存按鈕,我會打電話給

calendar.fullCalendar('unselect');// var calendar = $('.container').fullcalendar(); 

運行該函數內部關閉保存 onClicks。

希望這會幫助別人。