2016-04-22 4 views
0

Я пытаюсь создать новый календарь для разных позиций в таблице. Календарь отображается в модальном бутстрапе. Первоначальный рендеринг работает как ожидалось, однако, когда я закрываю и снова открываю модальный календарь, добавляется к старой.fullCalendar.js дублированный календарный рендер

Вот мой код:

$("#modal").on('shown.bs.modal', function() { 
//Render full calendar 
    $("#featureCal").fullCalendar({ 
     events: 'assets/ajax.php?a=facility-calendar.php&feature=1&facility=1', 
     defaultView : "agendaDay", 
     header: { 
     left: 'prev,next', 
     center: 'title', 
     right: 'today' 
     }, 
     editable: false, 
     droppable: false, 
     height: 600, 
     eventAfterAllRender : function(v){ 
     var $c = v.element.parents(0).children().eq(1).find("tbody>tr>td.fc-header-left"); 

     if($c.children().length <=2){ 
      //Add button to header 
      $c.append('</span></span><span class="fc-button fc-state-default fc-corner-left fc-corner-right margin-left025 addEvent"><i class="fa fa-calendar-plus-o"></i>'); 
     } 
    } 
}); 

});

, когда я закрыть модальный я делаю следующее

$("#featureCal").fullCalendar('destroy').remove(); 

И каждый раз, когда я инициирую модальный я опорожнить() его содержимое, как я использую те же модальное снова и просто удалить содержимое модальности.

я мог бы создать отдельные модальности для каждого календаря, но я бы предпочел, чтобы выяснить, почему это дублирование встречающегося

Я в настоящее время используюсь fullCalendar 1,6 ~ и действительно не хочу, чтобы обновить как весь календарь как для целей отображения

Благодаря

+0

Вы разрушив календарь на $ (» #modal '). on (' hide.bs.modal ', функция >>> обратите внимание на' hide 'vs.' hidden ' – orolo

+0

yes, если вы заметили, что все действия полного календаря выполняются над элементом $ ("# featureCal"). Я скрываю пустой модальный и пытаюсь повторно использовать для другого календаря - который добавляется к старому календарю. –

+0

Правильно, но когда вы говорите, что скрываете модальность, вы используете «hide.bs.modal» модального объекта, правильно ? или каким-то другим способом? – orolo

ответ

0

я получил следующие работы, регулируя событие щелчка только когда-либо визуализации календаря с данными раз

как так

$(".booking").one("click", function(){... 
     //Remove all instances of the booking class and adjust it to another class 
     $(".booking").removeClass("booking").addClass("calInfo"); 
}); 

затем добавить еще один слушатель событий для нового класса

$(document).on("click", ".calinfo", function(){ 
    //Remove event source, adjust the source and add the source back into the calendar, refetch events and render 
     $("#cal").fullCalendar('removeEventSource', source, 'addEventSource', newSource, 'refetchEvents, 'render'); 

}); 

Как это все внутри модального вы Т.П. убедитесь, что модальный открыт

Смежные вопросы