У меня есть проблема, связанная с несколькими различными фреймворками/библиотеками, хотя основными из них являются Twitter Bootstrap (js )и Rails.
У меня есть ссылка в моем приложении, которая отвечает каким-то js:
$(function() {
var $modal = $('<%= escape_javascript( render 'front_end/bookings/modal', :product => @product, :customer => @customer, :booking => @booking ) %>'),
$calendar = $modal.find('#calendar'),
currentProduct = <%= raw(@product.to_json) %>;,
initBookingCalendar;
$('body').append($modal);
$modal.modal('show');
/* Booking Calendar */
initBookingCalendar = function(el, productId) {
el.fullCalendar()
...
};
$($modal).on('shown', function() {
if($calendar.is(':empty')) {
initBookingCalendar($calendar, <%= @product.id %>);
}
});
});
Проблема в том, что событие 'show' по какой-то причине не срабатывает в IE9!? Я воспроизвел проблему здесь:http://jsfiddle.net/tvkS6/и заставил его работать, сделав это вот так:http://jsfiddle.net/tvkS6/9/. Проблема в том, что я не знаю, как реализовать решение в моем коде, так как я действительно не понимаю, в чем проблема.
Причина, по которой мне приходится ждать с initBookingCalendar, пока модальное окно не будет полностью показано, заключается в том, что плагин jQuery FullCalendar требует, чтобы элемент был видимым перед рендерингом календаря.
Любые подсказки приветствуются!