繁体   English   中英

如何与模态一起加载脚本(仅一次?)?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM