【发布时间】:2013-12-02 23:27:40
【问题描述】:
我正在使用带有远程选项的模态对话框:
<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.target 属性的显示.bs.modal 事件:
$("body").on("shown.bs.modal", function (event) {
// do something with event.target
}
第一次打开对话框时没有触发此事件的某些原因。而且它只是第二次被解雇。我尝试浏览引导脚本并找到此代码(请参阅我的评论):
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)
所以,我关闭了 transition 作为解决方法,它使事件第一次被触发,但是 event.target 是空字符串。 event.target 第二次包含适当的对话框 HTML。这是我的代码或引导程序的问题吗?
【问题讨论】:
-
投票结束:Bootstrap 在版本 2 和 3 之间改变了很多东西。请阅读Migrating from 2.x to 3.0 以及Modals 的新文档
-
我的问题适用于版本 3(实际上我从未使用过版本 2)。同样,这种滞后仅在使用远程选项时发生。估计时间有问题。我将尝试通过 JavaScript 而不是 Attributes 注入模态对话框。也许,我会自己加载模态对话框内容。还不想放弃 bootstrap 的 modals :)。
-
您正在使用 v2 标记。你的
modal-diag班级在哪里? -
您的意思是“模态对话框”类吗?模态对话框内容(包括带有“modal-dialog”类的 DIV)从指定的 url:href="/Banner/SlideEditModal/1/1" 加载(参见我的原始示例)。稍后我可以提取精确的 HTML……我不确定我在哪里使用了 v2 标记。如果您认为这可能是一个问题,请告诉我,我会尝试更改问题位置。
-
糟糕,是的
modal-dialog。您的问题不完整(不符合SSCCE 准则)。我建议删除data-toggle触发属性,而是仅在内容存在时使用 JS 打开模式
标签: javascript jquery twitter-bootstrap-3