Событие 'show' не запускается в IE9 при использовании Twitter Bootstrap Modal в Rails

У меня есть проблема, связанная с несколькими различными фреймворками/библиотеками, хотя основными из них являются 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 требует, чтобы элемент был видимым перед рендерингом календаря.

Любые подсказки приветствуются!

9
задан Brian Tompsett - 汤莱恩 10 August 2019 в 16:52
поделиться