加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 02:48:37 所属栏目:百科 来源:网络整理
导读:在ASP.NET MVC中,在通过Ajax加载的部分视图上运行 Javascript的首选模式是什么? 例如,假设您需要在局部视图中连接一些点击事件. 当然,在局部视图中放置这样的东西是行不通的,因为在部分视图加载Ajax之后,文档就绪事件不会触发. script type="text/javascrip
在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>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读