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

如何处理ajax加载的局部视图中的javascript?

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

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

当然,在局部视图中放置这样的东西是行不通的,因为在部分视图加载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>

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

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

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

但我一直在研究this示例,并注意到他们只是将他们的点击注册代码内联在局部视图中.

这是一种通常安全的模式吗?在脚本运行之前,如何确保部分视图的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>

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

相关推荐