Bootstrap Modal我遇到了一个非常奇怪的问题:
第一次加载我的网页时,浏览器缓存已清除,然后单击应打开的图标,该模式不会打开。当我刷新页面并单击图标时,模态出现...当我关闭模态并再次单击该图标时,它再次起作用。
这是我的标题代码:
<link href="libs/jquery/jquery-ui.css" rel="stylesheet" />
<link href="libs/bootstrap/css/bootstrap.min.css" rel="stylesheet" />
<script src="libs/jquery/jquery-2.1.4.min.js"></script>
<script src="libs/jquery/jquery-migrate-1.2.1.min.js"></script>
<script src="libs/jquery/jquery-1.11.3.min.js"></script>
<script>$(document).ready(function() { $.noConflict(); )};</script>
<script src="libs/bootstrap/js/bootstrap.min.js"></script>
<script src="libs/jquery/jquery-ui.js"></script>
这是我的身体代码:
<a id="myIcon">Open Modal</a>
<div class="modal" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Title</h4>
</div>
<div class="modal-body">Body</div>
<div class="modal-footer">Footer</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
对于那些想要查看完整代码的人来说,这是我的JS:
$(document).ready(function() {
$('#myIcon').click(function () {
$('#myModal').modal('show');
}
});
答案 0 :(得分:1)
我知道发生了什么。你忘了在你的锚中设置一些属性。
<a id="myIcon" data-toggle="modal" data-target="#myModal">Open Modal</a>
<div class="modal" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Title</h4>
</div>
<div class="modal-body">Body</div>
<div class="modal-footer">Footer</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
你可以避免你的脚本。在这种情况下,您的脚本只是模拟模态上的单击。 Bootstrap已经有一个与按钮关联的事件,这些按钮具有我在锚点中写入的属性。
$(document).ready(function() {
// You are triggering a click in your button
$('#myIcon').click(function () {
// After the click, you force the modal to be shown
$('#myModal').modal('show');
}
});
您只能允许JS与模态进行交互。这样,模态就不会有相关的事件。
<a class="open_modal" data-modal="myModal">Open Modal</a>
<div class="modal" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Title</h4>
</div>
<div class="modal-body">Body</div>
<div class="modal-footer">Footer</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
删除锚点的属性,然后:
$(document).ready(function() {
$('.open_modal').on('click',function () {
var idModal = $(this).data("modal")
$(idModal).modal('show');
}
});
这样,如果单击.open_modal元素,其数据模式代表模态ID,它用于显示模态。