我有一个模态在我的页面。当我尝试在windows加载时调用它时,它会向控制台打印一个错误,该错误表示:
$(...).modal is not a function
这是我的模态HTML:
<div class="modal fade" id="prizePopup" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
×
</button>
<h4 class="modal-title" id="myModalLabel">
This Modal title
</h4>
</div>
<div class="modal-body">
Add some text here
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">
Submit changes
</button>
</div>
</div>
</div>
null
<script type="text/javascript" src="js/bootstrap.js"></script>
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
这是加载窗口时使用的JavaScript:
<script type="text/javascript">
$(window).load(function() {
$('#prizePopup').modal('show');
});
</script>
如何修复此问题?
您的脚本顺序有问题。按以下顺序加载:
<!-- jQuery -->
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<!-- BS JavaScript -->
<script type="text/javascript" src="js/bootstrap.js"></script>
<!-- Have fun using Bootstrap JS -->
<script type="text/javascript">
$(window).load(function() {
$('#prizePopup').modal('show');
});
</script>
为什么要这样?因为引导JS依赖于jQuery:
一些插件和CSS组件依赖于其他插件。如果您单独包含插件,请确保在文档中检查这些依赖项。还要注意,所有插件都依赖于jQuery(这意味着插件文件之前必须包含jQuery)。
如果在代码中多次声明jQuery,也可能显示此警告。第二个jQuery声明阻止bootstrap.js正常工作。
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="js/bootstrap.js"></script>
...
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>