Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript twitter引导动态显示模式-递归错误太多_Javascript_Jquery_Twitter Bootstrap - Fatal编程技术网

Javascript twitter引导动态显示模式-递归错误太多

Javascript twitter引导动态显示模式-递归错误太多,javascript,jquery,twitter-bootstrap,Javascript,Jquery,Twitter Bootstrap,我有jqueryv1.8.3和twitter引导v2.2.1 我想创建一个函数来动态显示消息 函数showMsg(标题、文本、closeFunc){ var randId=Math.round(Math.random()*1000000); var对话框=“”; 对话框+=''; 对话框+='×;'; 对话框+=''+标题+''; 对话框+=''; 对话框+=''; 对话+=文本; 对话框+=''; 对话框+=''; 对话框+=‘关闭’; 对话框+=''; 对话框+=''; $('bo

我有jqueryv1.8.3和twitter引导v2.2.1

我想创建一个函数来动态显示消息

函数showMsg(标题、文本、closeFunc){
var randId=Math.round(Math.random()*1000000);
var对话框=“”;
对话框+='';
对话框+='×;';
对话框+=''+标题+'';
对话框+='';
对话框+='';
对话+=文本;
对话框+='';
对话框+='';
对话框+=‘关闭’;
对话框+='';
对话框+='';
$('body')。追加(对话框);
var modal=$('#modal'+randId);
modal.modal({背景:false,显示:false,键盘:false});
modal.modal('show');
var btn=$('modalBtn'uuu'+randId);
点击(函数(){
closeFunc();
modal.modal('hide');
});
}
但是在一次显示3条以上的消息之后,我在Jquery中得到一个错误:
递归太多了

如何修复它或使用其他方法?

我无法重新创建您的“太多递归”错误,但我确实想建议一种比您当前拥有的代码更好的处理动态消息的方法。也就是说,您可以只使用一个模式,并在显示之前更新其中的内容。这将消除您目前所承受的所有开销

  • 让jQuery将相同的字符串反复解析为html
  • 为每条消息实例化一个新的模态对象;及
  • 生成随机id,然后在DOM中搜索使用它们创建的元素
  • 或者,从一开始就在标记中使用以下空白模式。在哪里并不重要,但
    的底部是一个典型的位置。如果必须动态生成,请在
    showMsg
    函数之外执行,并且只执行一次

    <div id="msgModal" class="modal hide fade">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
        <h3></h3>
      </div>
      <div class="modal-body">
      </div>
      <div class="modal-footer">
        <button class="btn btn-primary callback-btn" data-dismiss="modal">Close</button>
      </div>
    </div>
    
    下面是一个演示,如果单击页脚按钮,将输出到控制台:


    或者触发此事件:

    jQuery('<a href="#my_new_div_with_modal_template" data-toggle="modal">Click me !</a>').trigger('click.modal.data-api');
    
    jQuery(“”).trigger('click.model.dataAPI');
    
    您能否指出在回调函数
    closeFunc
    中可能执行的操作?我正在测试您的代码,没有发现任何错误,不过我确实有一些改进建议。哦,你可能是指
    modal.modal('hide')
    而不是
    btn.modal('hide')
    谢谢你,这是个好方法,但我需要显示多条消息的可能性。例如,乘法错误消息,即不要错过错误。我通过在一条消息中添加一些错误来解决这个问题。还有一个问题:我想在我的模式中添加另一个按钮,它触发一个AJAX调用。我该怎么做?@CanCeylan将
    .text(body)
    更改为
    .html(body)
    将允许您在
    body
    变量中传递html字符串,该变量将被解析并显示在模式中。然后你可以在里面放一个按钮。
    jQuery('<a href="#my_new_div_with_modal_template" data-toggle="modal">Click me !</a>').trigger('click.modal.data-api');