1

我将部分视图 (_AddExp) 显示为用于添加新项目的模式弹出内容。关闭 modalpopup 后,我尝试再次显示 Modalpopup 以添加新项目,但 modalpopup 未打开。我收到错误 TypeError: $(...).modal is not a function on the line $('#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 事件和其他一些函数来发布 FORM 数据,这是第二次不显示弹出窗口的原因吗?我该如何解决这类问题?

4

3 回答 3

2

终于找到原因了。在局部视图中,我正在加载 jquery 库 sing 代码

在主页中,我也在加载 jquery 库,这使得问题一旦我从部分视图中删除 jquery 库,一切似乎都可以正常工作。

于 2013-11-05T04:32:36.840 回答
1

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

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

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

于 2013-11-04T16:47:59.497 回答
0

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

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

jQuery 无法加载到一个不存在的#ExperienceList。

那样行吗 ?

于 2013-11-04T16:47:33.403 回答