Twitter bootstrap模式弹出窗口无法打开

时间:2013-11-04 16:30:48

标签: asp.net-mvc-3 twitter-bootstrap razor

我将局部视图(_AddExp)显示为用于添加新项目的模态弹出内容。 关闭modalpopup后,我试图再次显示Modalpopup添加新项目但modalpopup没有打开。我收到错误TypeError:$(...)。modal不是$('#AddExpModal')行的函数.modal('show');

 <p>
<button onclick="AddExperience()" class="btn btn-primary">Add experience</button>
</p>

function AddExperience(){
   $('#AddExpModal').modal('show');
   $("#AddExpInfo").load("/Account/ExperienceAdd/"+ @ViewBag.AccountId); //Loads the Partial view.
}

<div id="AddExpModal" class="modal hide fade">
<div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
    <h3>Add experience detail</h3>
</div>
<div class="modal-body" id="AddExpInfo">

</div>
<div class="modal-footer">
   <button onclick="ClosePopup();" class="btn btn-primary">Close window</button>
</div>

//Code used after closing popup.
function ClosePopup(){
 $('#AddExpModal').modal('hide');
 $("#AddExpInfo").html("");
  $("#ExperienceList").load("/Account/ExperienceList/"+ @ViewBag.AccountId);
 }

在我添加新体验的部分视图(_Addexp.cshtml)中,我使用了Document.Ready事件和一些其他函数来POST FORM数据,这是不是第二次显示弹出窗口的原因吗?我该如何解决这种问题?问题?

3 个答案:

答案 0 :(得分:2)

最终找到原因。在局部视图里面我正在加载jquery库的歌曲代码

在主页面中我也加载了jquery库,这就产生了问题 一旦我从局部视图中删除了jquery lib,所有似乎都完美无缺。

答案 1 :(得分:1)

模态功能需要加载bootstrap.js。由于某种原因,在关闭模态后它没有加载。

我怀疑这是由于您正在加载HTML并将其作为.load调用的一部分插入DOM。它可能是使用iframe吗?或者它可能会加载一个不加载bootstrap.js的局部视图?

验证.load完成后,仍然为包含按钮的视图加载bootstrap.js。

答案 2 :(得分:0)

如果您的#ExperienceList在您的模式中,则在您使用时删除它:

$("#AddExpInfo").html("");

jQuery无法加载#ExperienceList不存在。

可以吗?