2015-04-10 21 views
5

Próbuję wyświetlić pełną kalendarze w modalnym oknie dialogowym za pomocą programu ładującego/jquery. Po wyświetleniu modalu kalendarz nie jest wyświetlany, chyba że zaznaczono przycisk "Dzisiaj".Program Fullcalendar nie wyświetla się w trybie modemu ładowania początkowego

Czytałem, że powinno się używać:

$("#calendar").fullCalendar('render'); 

nie wydają się działać.

Odtworzyłem tutaj cały problem. Użyłem linków do moich referencji, więc możesz zobaczyć problem, jeśli uruchomisz ten skrypt w Chrome.

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    
 
<link href="http://netdna.bootstrapcdn.com/bootstrap/3.0.2/css/bootstrap.min.css" rel="stylesheet" type="text/css"/> 
 
<link href="http://cdnjs.cloudflare.com/ajax/libs/fullcalendar/1.6.4/fullcalendar.css" rel="stylesheet"/> 
 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> 
 
<script src="http://netdna.bootstrapcdn.com/bootstrap/3.0.2/js/bootstrap.min.js" type="text/javascript"></script>   
 
<!-- IMPORTANT! fullcalendar depends on jquery-ui.min.js for drag & drop support --> 
 
<script src="http://cdnjs.cloudflare.com/ajax/libs/fullcalendar/1.6.4/fullcalendar.min.js"></script> 
 

 
</head> 
 
<body> 
 
<a data-toggle="modal" id="add_appointment" href="#modal_form_addappt" class="btn btn-default btn-sm">Add... </a> 
 
    
 
<!-- /.modal --> 
 
<div class="modal fade" id="modal_form_addappt" tabindex="-1" role="dialog" aria-hidden="true"> 
 
    <div class="modal-dialog"> 
 
     <div class="modal-content"> 
 
      <div class="modal-header"> 
 
       <h4 class="modal-title">Add New Appointment...</h4> 
 
      </div> 
 
      <div class="modal-body"> 
 

 
       <div id="calendar"></div> 
 
       
 
      </div> 
 
      <div class="modal-footer"> 
 
\t \t  <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button> 
 
\t \t  <button class="btn btn-primary">Save changes</button> 
 
\t  </div> 
 
     </div> 
 
     <!-- /.modal-content --> 
 
    </div> 
 
    <!-- /.modal-dialog --> 
 
</div> 
 
<!-- /.modal --> 
 

 
<script> 
 
      
 
$("#calendar").fullCalendar({ 
 
}); 
 
    
 
$('#modal_form_addappt').on('show.bs.modal', function() { 
 
     $("#calendar").fullCalendar('render'); 
 
}); 
 
    
 
</script> 
 
    
 
</body> 
 
     
 
</html>

Odpowiedz

9

Używasz niewłaściwy sposób. Zmień show.bs.modal do shown.bs.modal:

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    
 
<link href="http://netdna.bootstrapcdn.com/bootstrap/3.0.2/css/bootstrap.min.css" rel="stylesheet" type="text/css"/> 
 
<link href="http://cdnjs.cloudflare.com/ajax/libs/fullcalendar/1.6.4/fullcalendar.css" rel="stylesheet"/> 
 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> 
 
<script src="http://netdna.bootstrapcdn.com/bootstrap/3.0.2/js/bootstrap.min.js" type="text/javascript"></script>   
 
<!-- IMPORTANT! fullcalendar depends on jquery-ui.min.js for drag & drop support --> 
 
<script src="http://cdnjs.cloudflare.com/ajax/libs/fullcalendar/1.6.4/fullcalendar.min.js"></script> 
 

 
</head> 
 
<body> 
 
<a data-toggle="modal" id="add_appointment" href="#modal_form_addappt" class="btn btn-default btn-sm">Add... </a> 
 
    
 
<!-- /.modal --> 
 
<div class="modal fade" id="modal_form_addappt" tabindex="-1" role="dialog" aria-hidden="true"> 
 
    <div class="modal-dialog"> 
 
     <div class="modal-content"> 
 
      <div class="modal-header"> 
 
       <h4 class="modal-title">Add New Appointment...</h4> 
 
      </div> 
 
      <div class="modal-body"> 
 

 
       <div id="calendar"></div> 
 
       
 
      </div> 
 
      <div class="modal-footer"> 
 
\t \t  <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button> 
 
\t \t  <button class="btn btn-primary">Save changes</button> 
 
\t  </div> 
 
     </div> 
 
     <!-- /.modal-content --> 
 
    </div> 
 
    <!-- /.modal-dialog --> 
 
</div> 
 
<!-- /.modal --> 
 

 
<script> 
 
      
 
$("#calendar").fullCalendar({ 
 
}); 
 
    
 
$('#modal_form_addappt').on('shown.bs.modal', function() { 
 
     $("#calendar").fullCalendar('render'); 
 
}); 
 
    
 
</script> 
 
    
 
</body> 
 
     
 
</html>

show nazywa pokazać modal, shown jest wywoływana, gdy modalna jest pokazany, więc korzystanie które pozwala na wyświetlanie kiedy modalna jest otwarty.

+0

Zrobiłeś mój dzień. Nie mogę ci wystarczająco podziękować za złapanie tego! –

+2

Nie ma problemu :) Zabawne, jak pojedyncze 'n' może rozwiązać wszystko! –

+0

Dzięki za milion kumpli. Spędziłem prawie 4 godziny, zastanawiając się, dlaczego ciało kalendarza nie renderuje się w Modalu !!! –

Powiązane problemy