Я использую модальное диалоговое окно с удаленным вариантом:
<a target="profile-banner" data-target="#edit-slide-dlg" href="/Banner/SlideEditModal/1/1"
data-toggle="modal" class="banner-slide-control">Edit</a>
Где:
<div id="edit-slide-dlg" class="modal fade" tabindex="-1"></div>
Кроме того, я слушаю event.bs.modal, где я использую свойство event.target:
$("body").on("shown.bs.modal", function (event) {
// do something with event.target
}
По этой причине это событие не запускается при первом открытии диалогового окна. И его увольняют во второй раз. Я попытался просмотреть скрипты bootstrap и нашел этот код (см. Мой комментарий):
var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })
transition ?
that.$element.find('.modal-dialog') // wait for modal to slide in
.one($.support.transition.end, function () {
that.$element.focus().trigger(e) //THIS LINE NEVER EXECUTED AT FIRST DIALOG OPENING
})
.emulateTransitionEnd(300) :
that.$element.focus().trigger(e)
Итак, я отключил переход в качестве обходного пути. Это событие было запущено в первый раз, но event.target - пустая строка. Во второй раз event.target содержит соответствующий диалог HTML. Эта проблема связана с моим кодом или начальной загрузкой?