JQuery事件不能与ASP.NET MVC部分视图一起使用

前端之家收集整理的这篇文章主要介绍了JQuery事件不能与ASP.NET MVC部分视图一起使用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图让JQuery事件在ASP.NET MVC中使用部分视图。但是,通过Ajax加载部分视图后,JQuery似乎无法为部分视图中的任何元素触发事件。我怀疑如果您使用其他框架或JavaScript库加载部分HTML代码与Ajax,也会发生此问题。

例如,考虑以下示例:

控制器:

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插件也会出现此问题。

解决方法

我找到了一个解决方案:

Juste试图做:

$(document).on("click","YOUR_SELECTOR",function(e){
  /// Do some stuff ...
});

代替 :

$("YOUR_SELECTOR").on("click",function(e){
  /// Do some stuff ...
});

猜你在找的jQuery相关文章