Я создаю сайт и использую Twitter Bootstrap modal.js как часть моего проекта. И, как обычно, IE вызывает некоторые проблемы.IE ненавидит мои события модального окна
У меня есть несколько кнопок, при нажатии каждой из которых вы выбираете другую форму через ajax, заполняет модальную форму и выводит ее. Поскольку они динамически импортируются, мне нужно обновить некоторые поля с помощью дополнительных скриптов (например, jQuery UI datepicker) после того, как модаль будет извлечен. Сразу после вызова ajax не работает, поэтому мне нужно использовать модальные события.
Это работает на хроме:
$('#myModal').modal().on('shown', function() {
$('#id_date').datepicker();
});
Однако IE делает что-то странное. Для этого мне пришлось привязать слушателя к событию «show» («показанный» не работает) и к документу вместо модального.
Внутри document.ready:
$(document).on('show', function() {
$('#id_date').datepicker();
});
После нажатия кнопки:
$('#myModal').modal('show');
Но вот футболист - это не работает, либо если я добавить alert('hello');
выше .datepicker()
, Почему предупреждение что-то меняет? Я не знаю, но потом он также складывается - каждый раз, когда вы нажимаете на одну из кнопок, вы получаете больше предупреждений, то есть в первый раз, когда один сигнал, второй раз два предупреждения и так далее.
Я использую bootstrap 2.2 и IE8 (стандартный режим, есть также мета, чтобы убедиться, что страница отображается как IE8, а не более старая версия). Я понятия не имею, в чем проблема, пожалуйста, помогите!
Update
Так что я сузили его немного. Это не связано с событиями «показанного» или «шоу» или с тем, для чего он привязан. Это намного более странно. Это то, что я в конечном итоге делает:
$('#myModal').on('shown', function() {
if (navigator.appName == 'Microsoft Internet Explorer') {
alert('Hey! you should really use Chrome!');
}
$('#id_date').datepicker();
$('#id_tags').chosen();
});
$('#button1').on('click', function() {
$('#myModal').modal();
});
без предупреждения сообщения, IE не запускается DatePicker и выбранный код, который приходит сразу же после этого. Почему простое оповещение имеет такое влияние?
Какую версию jQuery вы используете? –
версия 1.9.1 ... – yuvi
Если честно, я думаю, что это состояние гонки, попробуйте добавить задержку, чтобы увидеть, помогает ли она, если это так, цепочки событий с надлежащими обратными вызовами –