【发布时间】:2018-06-20 20:01:07
【问题描述】:
每当页面加载时,我的母版页上都有以下模式作为带有旋转 gif 的加载消息。
<div id="divModal" class="modal fade" role="dialog">
<div id="divModalDialog" class="modal-dialog">
<div id="divModalContent" class="modal-content" style="text-align: center;">
<div id="divModalBody" class="modal-body">
<img src="/Images/Loading.gif" width="200" alt="Loading..." />
<div id="divMessage" style="margin-top: 10px">
<b>Please Wait...</b>
</div>
</div>
</div>
</div>
</div>
我正在使用以下脚本来尝试显示和隐藏模式。
<script type="text/javascript">
function showModal() {
$('#divModal').modal('show');
}
function hideModal() {
$('#divModal').modal('hide');
}
$(document).ready(showModal());
window.onload = hideModal();
</script>
在 document.ready 中显示模式可以正常工作。但是当页面上的所有内容加载完成时,通常大约 5 秒,我希望模态消失。根据我的阅读,将隐藏模式函数放在 window.onload 中应该可以工作,但事实并非如此。页面开始加载后,我的模式会立即弹出,但会无限期地旋转。
我在正文结束之前拥有这两个功能,因为它似乎是显示模态功能起作用的唯一位置。我什至在每个函数中都放置了警报和控制台日志,以确保它们以正确的顺序触发,而且它们确实如此。他们开火时我也没有收到任何错误。但是隐藏并没有隐藏模态。有谁知道为什么会这样?
编辑:我已经让 hideModel() 通过将模型包装在 setTimeout() 中来实际隐藏模型。
window.onload = setTimeout("hideModal()", 1000);
但是,无论页面是否完成加载,无论第二个参数有多长,它都会立即隐藏模式。
【问题讨论】:
-
您使用的是什么类型的库。 jQuery does not have 一个模态函数。如果从控制台调用 showModal() 和 hideModal() 会发生什么?
-
我正在使用 jQuery 和 Bootstrap。如果我从控制台使用 hideModal(),它会隐藏模式。 showModal() 也可以正常工作。
标签: javascript jquery webforms bootstrap-modal onload