我正在开发一个打开引导模式的脚本,然后用“im sure”按钮确认你的选择,然后你确认你的选择(如果它成功提交)它将一个注释表单加载到模态体中。注释表单存储在部分中,注释表示使用wysihtml5。这是我目前的代码:
modal_div.find('.confirm-o-c').click(function(ee){
$.post(
lnk.attr('href'),
function(data, textStatus, jqxhr){
console.log(data);
var lbl = lnk.parent().prev().children('.label').first();
lbl.fadeOut('fast');
lbl.attr('class','label label-'+data.status)
.text(data.text)
.fadeIn('fast');
var newlnk = $('<a href="#">newlink</a>');
newlnk.attr('href',lnk.attr('href').replace('complete','revert'));
lnk.parent().append(newlnk);
lnk.remove();
var status = data.status;
var id = data.object.id;
var objective_id = data.object.objective_id;
if(status === 'submitted'){
modal.fadeOut('fast', function(){
modal.load('<?=URL::to_action('objectives/completion_comment/')?>/'+id, function(){
modal.fadeIn('fast');
$('#message-'+objective_id).wysihtml5();
});
$('#confirm-objective-complete').addClass('modal-large');
$('#submit-comment').css("display", "inline-block");
oldfooterbtn.css("display", "none");
footerbtncancel.css("display", "none");
footerbtnclose.css("display", "none");
confirmtext.css("display", "none");
});
};
});
// objectives.init();
ee.preventDefault();
问题
确认后,帖子工作得很好,它返回提交,但是当评论表格被引导时,我的控制台显示它发生了8次,我得到这个错误
TypeError: f.contentWindow is null
我见过一些像:
$(this).one('load', function () {
console.log("load complete");
});'
但是我无法想象如何使用像我这样的URL来实现。任何帮助将不胜感激。
感谢您查看我的代码。
答案 0 :(得分:1)
这是因为变量模式被设置为$('.modal-body')
,而它们在DOM中的多个多样性的位置。一旦我将其缩小到var modal = modal_div.find('.modal-body');
,它就能够只选择当前的模态体。
答案 1 :(得分:0)
像这样:http://api.jquery.com/load/
$(this).load('myurl/page',{/*JSON data*/},function () {
console.log("load complete");
});'
答案 2 :(得分:0)
确保您没有将多个事件绑定到模式。 您可以使用unbind函数清除它,特别是如果多次将事件绑定到它:
$('#myModal').unbind();