我正在尝试让 ASP.NET MVC 中的局部视图与 JQuery 事件配合使用。但是,当您通过 Ajax 加载局部视图之后,JQuery 似乎无法为局部视图中的任何元素触发事件。我怀疑如果您使用其他框架或 JavaScript 库来用 Ajax 加载局部 HTML 代码,则此问题也会发生。
例如,考虑以下示例:
控制器:
一旦页面第一次加载完成,您可以单击“单击此处显示JavaScript消息”,然后会收到一个JavaScript警告消息,其中包含“按钮已单击”字样。但是,一旦您单击“单击此处加载部分视图”,单击应该弹出JavaScript警告消息的按钮不再有任何效果。似乎“单击”事件不再被触发。
有人知道为什么使用JQuery会出现这个问题,以及如何解决吗?此问题也在其他使用事件的JQuery插件中出现。
例如,考虑以下示例:
控制器:
public class TestController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult LoadPartialView()
{
return View("PartialView");
}
}
Index.aspx
<script type="text/javascript">
$(document).ready(function() {
$("#button").click(function() {
alert('button clicked');
});
});
</script>
<div>
<%using(Ajax.BeginForm("LoadPartialView", new AjaxOptions { UpdateTargetId="PartialView"})){ %>
Click <input type="submit" value="here" /> to load partial view.
<% } %>
</div>
<br /><br />
<% Html.RenderPartial("PartialView"); %>
PartialView.ascx
<div id="PartialView">
Click <input type="button" id="button" value="here"></input> to display a javascript message.
</div>
一旦页面第一次加载完成,您可以单击“单击此处显示JavaScript消息”,然后会收到一个JavaScript警告消息,其中包含“按钮已单击”字样。但是,一旦您单击“单击此处加载部分视图”,单击应该弹出JavaScript警告消息的按钮不再有任何效果。似乎“单击”事件不再被触发。
有人知道为什么使用JQuery会出现这个问题,以及如何解决吗?此问题也在其他使用事件的JQuery插件中出现。