Javascript twitter引导动态显示模式-递归错误太多
我有jqueryv1.8.3和twitter引导v2.2.1 我想创建一个函数来动态显示消息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
函数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中得到一个错误:递归太多了
如何修复它或使用其他方法?我无法重新创建您的“太多递归”错误,但我确实想建议一种比您当前拥有的代码更好的处理动态消息的方法。也就是说,您可以只使用一个模式,并在显示之前更新其中的内容。这将消除您目前所承受的所有开销
的底部是一个典型的位置。如果必须动态生成,请在showMsg
函数之外执行,并且只执行一次
<div id="msgModal" class="modal hide fade">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</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');