[英]How to load script along with modal (only once!)?
我需要加载一些脚本以及模态表单。 此模式也用于其他目的。 因此,加载模态时,我需要在运行脚本之前检测它是否包含表单。 我使用这些行:
$(document).ready(function () {
$('#form-modal').on('show.bs.modal', function () {
// Init prestation type modal form
if (document.getElementById("prestaTypeForm")) {
initPrestationTypeModalForm()
}
})
})
不幸的是,每次我打开一个模式时都会加载脚本,所以第一次它工作正常,但第二次,第二次添加 eventListener,第三次,三次......这意味着当我触发一个动作,它被触发的次数与我打开模式的次数一样多。
正如我所说,模态有其他用途,所以如果我在不同的模态上运行脚本一次,没有形式,我无法将侦听器添加到不存在的节点。
这是防止这种情况的方法吗?
用于解决此问题的模式非常简单。 正如@cloned 所建议的那样,使用全局变量作为标志是解决方案。
$(document).ready(function () {
var initFormDone
$('#form-modal').on('show.bs.modal', function () {
// Init prestation type modal form
if (document.getElementById("prestaTypeForm") && (!initFormDone)) {
initPrestationTypeModalForm()
initFormDone = true
}
})
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.