Javascript 重新访问引导4模式确认
我想用Bootstrap4创建一个“灵活的”确认对话框,因为我不想自己硬编码每个确认模式/动作 所以,用一个标准的模态,比如Javascript 重新访问引导4模式确认,javascript,jquery,twitter-bootstrap,bootstrap-modal,Javascript,Jquery,Twitter Bootstrap,Bootstrap Modal,我想用Bootstrap4创建一个“灵活的”确认对话框,因为我不想自己硬编码每个确认模式/动作 所以,用一个标准的模态,比如 <div class="modal fade" tabindex="-1" role="dialog" id="msgModal"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div
<div class="modal fade" tabindex="-1" role="dialog" id="msgModal">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="msgModalTitle">Modal title</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body" id="msgModalBody">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Doch nicht</button>
<button type="button" class="btn btn-primary" id="btnModelConfirmMessage">OK</button>
</div>
</div>
</div>
</div>
我认为,通过将“动作”部分作为函数发送,只要单击“确定”按钮,就会出现异常
就像一个符咒,但它有一个主要的错误
事件处理程序似乎停留在模式上,即,如果我显示并隐藏模式,OK按钮将触发函数两次
在其他人中,我找到了这篇文章
建议将click()事件移到外部的位置。我相信这会对那个特定的任务起作用,但是我会失去这个功能
因此,如何使用
hide.bs.modal
事件解除处理程序的绑定?阅读jquery文档后,答案相当简单:
更改:
$('#btnModelConfirmMessage').on('click',function () {
fun();
$('#msgModal').modal('hide');
});
然后在hide.bs.modal
事件上添加一个新调用
$('#msgModal').on('hide.bs.modal',function () {
$('#btnModelConfirmMessage').off();
});
这将删除先前添加的处理程序,因此我们不会堆叠事件
希望有人会觉得这个有用:))
干杯,
丹尼尔
$('#msgModal').on('hide.bs.modal',function () {
$('#btnModelConfirmMessage').off();
});