god*_*per 91 html javascript jquery bootstrap-modal
我的页面中有一个模态.当我在Windows加载时尝试调用它时,它会向控制台输出一条错误:
$(...).modal is not a function
Run Code Online (Sandbox Code Playgroud)
这是我的模态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>
Run Code Online (Sandbox Code Playgroud)
<script type="text/javascript" src="js/bootstrap.js"></script>
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
Run Code Online (Sandbox Code Playgroud)
这是我在加载窗口时运行它的JavaScript:
<script type="text/javascript">
$(window).load(function() {
$('#prizePopup').modal('show');
});
</script>
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
Ion*_*zău 135
脚本顺序存在问题.按此顺序加载它们:
<!-- 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>
Run Code Online (Sandbox Code Playgroud)
为什么这个?因为Bootstrap JS依赖于jQuery:
插件依赖项
一些插件和CSS组件依赖于其他插件.如果单独包含插件,请确保在文档中检查这些依赖项.另请注意,所有插件都依赖于jQuery(这意味着必须在插件文件之前包含jQuery).
Nur*_*urp 63
如果在代码中多次声明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>
Run Code Online (Sandbox Code Playgroud)
小智 14
问题是由于jQuery实例不止一次.如果您使用多个jQuery实例的文件,请注意.只留下1个jQuery实例,你的代码就可以了.
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
Run Code Online (Sandbox Code Playgroud)
das*_*jad 13
jQuery应该是第一个:
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="js/bootstrap.js"></script>
Run Code Online (Sandbox Code Playgroud)
小智 8
努力解决这个问题,检查了加载顺序,以及 jQuery 是否通过捆绑包含了两次,但这似乎不是原因。
最后通过进行以下更改修复了它:
(前):
$('#myModal').modal('hide');
Run Code Online (Sandbox Code Playgroud)
(后):
window.$('#myModal').modal('hide');
Run Code Online (Sandbox Code Playgroud)
在这里找到答案:https ://github.com/ColorlibHQ/AdminLTE/issues/685
更改导入语句有效。从
import * as $ from 'jquery';
Run Code Online (Sandbox Code Playgroud)
到:
declare var $ : any;
Run Code Online (Sandbox Code Playgroud)
TypeError的原因:$(…).modal不是函数:
解决方案:
如果脚本试图访问尚未到达的元素,那么您将得到一个错误。Bootstrap依赖于jQuery,因此必须首先引用jQuery。因此,必须先调用jquery.min.js,再调用bootstrap.min.js,然后再启动bootstrap Modal错误实际上是由于在调用模态函数之前不包括bootstrap的javascript导致的。模态是在bootstrap.js中定义的,而不是在jQuery中定义的。因此,应该以这种方式包括脚本
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="js/bootstrap.js"></script>
Run Code Online (Sandbox Code Playgroud)如果有多个jQuery实例,则第二个jQuery声明会阻止bootstrap.js正常工作。因此请jQuery.noConflict();
在调用模式弹出窗口之前使用
jQuery.noConflict();
$('#prizePopup').modal('show');
Run Code Online (Sandbox Code Playgroud)
jQuery事件别名(例如).load
,.unload
或者.error
从jQuery 1.8开始不推荐使用。
$(window).on('load', function(){
$('#prizePopup').modal('show');
});
Run Code Online (Sandbox Code Playgroud)
或者尝试直接打开模式弹出窗口
$('#prizePopup').on('shown.bs.modal', function () {
...
});
Run Code Online (Sandbox Code Playgroud)在 angular 中集成模态引导程序时,我遇到了这个错误。
这是我解决此问题的解决方案。
我分担为谁关心。
第一步,您需要安装jquery
并bootstrap
通过npm
命令。
其次你需要添加declare var $ : any;
组件
并且可以使用$('#myModal').modal('hide');
onSave() 方法
演示https://stackblitz.com/edit/angular-model-bootstrap-close?file=src/app/app.component.ts