1

问题

通过传入远程 url 生成模态时,我无法shown.bs.modal正确触发。

在以下代码中,hidden.bs.modal始终如一地工作。

编码

$('#my_modal').on("shown.bs.modal", set_up_modal);
$('#my_modal').on("hidden.bs.modal", tear_down_modal);
$('#my_modal').modal({ remote: target_url  });

set_up_modal    = function() { console.log('up') };
tear_down_modal = function() { console.log('down') };

我试过的

我已阅读文档

我试图改变我.on的阅读方式$('body').on("shown.bs.modal", '#my_modal', saa.set_up_modal);,但这并没有产生任何变化(再次hidden.bs.modal有效)。

更新

我已经添加console.log($._data( $('#my_modal')[0], "events" ));并且可以确认它shown被绑定到对象,只是没有被调用。

我已经尝试show.bs.modal改用,这可行,但我需要元素在屏幕上可见,以便对它们做些什么。

4

1 回答 1

2

从这里的拉取请求中找到了一个临时解决方案https://github.com/twbs/bootstrap/commit/4b1a6e11326fee97a5ebc194be040086f40f97fb

按照下面的方式编辑 modal.js 文件的第 81 行已经为我解决了这个问题,直到发出拉取请求

-        that.$element.find('.modal-dialog') // wait for modal to slide in
+        that.$element // wait for modal to slide in
于 2013-08-29T12:50:13.677 回答