微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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 ...
});

原文地址:https://www.jb51.cc/jquery/181802.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐