未捕获的类型错误:$(..).load(..).modal不是关闭后重新打开modalbox的函数

Uncaught TypeError: $(...).load(...).modal is not a function on re-opening modalbox after close

本文关键字:函数 modalbox 新打开 load 类型 错误 modal      更新时间:2024-05-22

未捕获的类型错误:$(…).load(…).modal不是函数

当我关闭一个模态并再次尝试重新打开模态框时,我可以在控制台中看到这个错误。有时它工作2-3次,然后给出这个错误。

有人能告诉我可能出了什么问题吗?

我在页面上添加了一个div

<div class="modal fade" id="loadmodalbox" tabindex="-1" role="dialog" aria-labelledby="modalLabel" aria-hidden="true"></div>

这是打开模式的链接

<button class="btn btn-default openmodal" modalbox="affiliateprogrammodal" data-toggle="modal" data-target="#affiliateprogrammodal" bid="'.$company['User']['u_id'].'">'.$company['User']['u_text_for_blue_button'].'</button>

然后我使用以下代码加载这个不同的模式:

$('.openmodal').click(function(e){ 
e.preventDefault();
var modalbox = $(this).attr('modalbox'); 
var companyid = '';
if(modalbox=='commentmodal') {
    companyid = $(this).attr('companyid');
    companyid = '/'+companyid;
}
if(modalbox=='affiliateprogrammodal') {
    companyid = $(this).attr('bid');
    companyid = '/'+companyid;
}
$('#loadmodalbox').load('<?php echo Router::url(array('controller'=>'users','action'=>'loadmodalbox')); ?>/'+modalbox+companyid).modal({
                              keyboard: false,
                              show:true,
                              backdrop:'static'
                            });
});

您能添加HTML页面和JS文件吗?据我们所知,可能是页面尚未加载的问题。如果您的模态正在显示,但没有内容,则会出现这种情况。

在这种情况下,请尝试像这样在加载回调中调用.modal()方法。

$('.openmodal').click(function(e){ 
    e.preventDefault();
    var modalbox = $(this).data('modalbox'); 
    var companyid = '';
    
    if(modalbox=='commentmodal') {
        companyid = "/" + $(this).data('companyid');
    }
    
    if(modalbox=='affiliateprogrammodal') {
        companyid = "/" + $(this).data('bid');
    }
    var url = '<?php echo Router::url(array('controller'=>'users','action'=>'loadmodalbox')); ?>/' + modalbox + companyid;
    $('#loadmodalbox').load(url, function(){
        $(this).modal({
          keyboard: false,
          show: true,
          backdrop: 'static'
        });
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="modal fade" id="loadmodalbox" tabindex="-1" role="dialog" aria-labelledby="modalLabel" aria-hidden="true"></div>
<button class="btn btn-default openmodal" data-modalbox="affiliateprogrammodal" data-toggle="modal" data-target="#affiliateprogrammodal" data-bid="'.$company['User']['u_id'].'">'.$company['User']['u_text_for_blue_button'].'</button>