请检查我的代码:
HTML:
<button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#myModal">Teste</button>
<!-- Modal -->
<div id="myModal" class="modal fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Teste modal</h4>
</div>
<div class="modal-body">
<label class="control-label">Select File</label>
<input id="input-1a" type="file" class="file" data-show-preview="false">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Fechar</button>
</div>
</div>
</div>
</div>
JS:
$('#myModal').on('shown.bs.modal', function(e) {
alert("alert");
})
我正在使用此插件:http://plugins.krajee.com/file-input#usage
这里是jsfiddle:https://jsfiddle.net/DTcHh/30285/
在第$('#myModal').on('shown.bs.modal', function(e)
行中,它会执行2次。
删除行<input id="input-1a" type="file" class="file" data-show-preview="false">
,工作正常。
任何解决方案?
答案 0 :(得分:2)
您正在使用两个可能与jQuery发生冲突的JavaScript库。为了避免这些冲突,您需要将jQuery置于无冲突模式,如下所示:
jQuery(document).ready(function( $ ) {
$('#myModal').on('shown.bs.modal', function(e) {
alert("alert");
e.stopPropagation();
})
});
希望这有帮助!
答案 1 :(得分:0)
我遇到同样的麻烦,这是我的解决方案
var tm = false;
$('#myModal').on('shown.bs.modal', function(e) {
if(tm) {tm=false;return;}
else { alert('ok'); tm= true;}
})