我正在一个新项目上使用Twitter Bootstrap lib,我想要部分页面刷新并检索模态关闭时的最新json数据 . 我没有在文档中的任何地方看到这个可以有人指出它或建议解决方案 .
使用记录的方法有两个问题
$('#my-modal').bind('hide', function () {
// do something ...
});
我已经将“隐藏”类附加到模态,因此它不会在页面加载时显示,因此会加载两次
即使我删除了hide类并将元素id设置为 display:none
并将 console.log("THE MODAL CLOSED");
添加到上面的函数中,当我点击时,没有任何反应 .
11 回答
Bootstrap 4
有关工作示例,请参阅此JSFiddle:
http://jsfiddle.net/aq9Laaew/120440/
请参阅此处文档的模态事件部分:
https://getbootstrap.com/docs/4.1/components/modal/#events
Bootstrap 3&4
Bootstrap 3:getbootstrap.com/javascript/#modals-events
Bootstrap 4:getbootstrap.com/docs/4.1/components/modal/#events
Bootstrap 2.3.2
见getbootstrap.com/2.3.2/javascript.html#modals→事件
从 Bootstrap 3 开始( edit: 在 Bootstrap 4 中仍然相同)有2个实例,您可以在其中启动事件,其中:
1.当模态“隐藏”事件开始时
2.当模态“隐藏”事件结束时
参考:http://getbootstrap.com/javascript/#js-events
您需要使用“on”事件,而不是“live”,而是将其分配给文档对象:
使用:
Bootstrap提供你可以挂钩到modal的事件,就像你想在模式完成对用户隐藏的情况下触发event你可以使用 hidden.bs.modal 这样的事件
检查fiddle here在 Documentation 中阅读有关模态方法和事件的更多信息
我已经看到许多关于引导事件的答案,例如
hide.bs.modal
,当模态关闭时触发 .这些事件存在问题:模态中的任何弹出窗口(弹出窗口,工具提示等)都会触发该事件 .
当模态关闭时,还有另一种方法可以捕获事件 .
当模态打开时,Bootstrap使用
in
类 . 使用hidden
事件非常重要,因为在触发事件hide
时仍会定义类in
.此解决方案在IE8中不起作用,因为IE8不支持Jquery
:not()
选择器 .我'm jumping in super late here, but for people using Bootstrap modals with React I'已经使用MutationObserver来检测模态可见性的变化并相应地调整状态 - 这个方法可以应用于在模态关闭时运行任何函数:
对于那些对现代浏览器支持感到疑惑的人,CanIUse在around 87%上有MutationObserver的报道
希望有人帮助:)
干杯,
可靠的人
我和其他人有同样的问题
您需要将其放在页面底部,将其放在顶部永远不会触发事件 .
Bootstrap 4:
hide.bs.modal :调用hide实例方法后立即触发此事件 .
hidden.bs.modal :当模态完成对用户的隐藏时将触发此事件(将等待CSS转换完成) .
我会这样做:
其余的已经是其他人写的 . 我还建议阅读文档:jquery - on method