javascript - 应该如何处理 ajax 加载的局部 View 中的 javascript?

标签 javascript asp.net-mvc partial-views asp.net-mvc-partialview

在 ASP.NET MVC 中,在通过 Ajax 加载的局部 View 上运行 Javascript 的首选模式是什么?

例如,假设您需要在局部 View 中连接一些点击事件。

当然,将这样的东西放在分部 View 中是行不通的,因为在分部 View 加载 Ajax 后文档就绪事件不会触发。

<script type="text/javascript">
    $(function() {
        $("a.foo").click(function() {
            foo();
            return false;
        });
    });
</script>

我想这样的事情可能会奏效,但它安全吗?

<script type="text/javascript">
    $("a.foo").click(function() {
        foo();
        return false;
    });
</script>

我一直使用的模式是在加载部分后从我的父 View 运行任何 Javascript,如下所示:

$.get(url, function(html) {
    $("#partialDiv").html(html);

    // Now that the partial has loaded...
    RegisterClicks();
});

但我一直在研究 this例如,并注意到他们只是将点击注册代码内嵌在局部 View 中。

采用这种模式通常是安全的吗?如何确定局部 View 的 DOM 在我的脚本运行之前已完成加载?

最佳答案

jQuery .on() 函数应该可以解决问题,不是吗?它应该适用于动态添加的内容。

将其作为完整内容的一部分提供

<script type="text/javascript">
    $(function() {
        $("#partialContent").on("click", "a.foo", function() {
            foo();
            return false;
        });
    });
</script>

<div id="partialContent">
   <a href="#" class="foo">Link 1</a>
   <a href="#" class="foo">Link 2</a>
   <!-- More dynamic content -->
</div>

关于javascript - 应该如何处理 ajax 加载的局部 View 中的 javascript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14838789/

相关文章:

asp.net-mvc - asp.net mvc 4 - 可以为每个线程共享 DbContext 吗?

asp.net-mvc-2 - 将 ViewData 传递给使用 Html.Action 返回的 PartialView

javascript - 当它到达浏览器的顶部时,位置固定了我的表格的第一行

asp.net-mvc - ASP.NET MVC HTML助手可以呈现没有ID属性的元素吗?

javascript - 加载后动态添加 facebook 之类的按钮

asp.net - asp :datalist in asp.net-mvc 相当于什么

c# - JQuery Modal - 隐藏的 Div 与部分 View (MVC3)

rspec - rails_admin View 的局部放置位置

javascript - 从 swift 4 调用 paypal javascript 函数

javascript - 我想在我的 php 站点中手动配置键盘快捷键