jquery - $(document).ready() 在加载部分 View 之前触发

标签 jquery asp.net-mvc

我有一个页面,其中包含部分 View 。

MyMainView.cshtml

<div>
    @Html.Partial("MyPartial")    
</div>
@section pagespecific {
    <script type='text/javascript'>
        $(document).ready(function(){
            console.log('Value is: ' + $('#MyModelField').val());
        });
    </script>
}

MyPartial.cshtml

<div>
    @Html.HiddenFor(x => x.MyModelField)
</div>

模型中 MyModelField 的值为 True,但是,我在浏览器控制台中得到以下输出:

Value is: undefined

为什么这没有引起关注?在触发之前,不应该将部分 View 添加到 DOM 中吗?

如果我将 $(document).ready() 更改为 $(window).load() ,它会按预期工作。

如何实现所需的行为?

最佳答案

是的,这是真的,原因是每当你的 dom 准备好时 .ready 就会被触发。因此,您的页面首先加载,并触发 jquery .ready function() ,而顺序执行的部分 View 也在服务器端执行。

两者的可用性不同。

停止或者你想在一段时间后执行。

  • 您也可以在部分 View 中执行此操作

  • 给出您的持续时间的延迟时间

    $(document).ready(function(){
        console.log('Value is: ' + $('#MyModelField').val());
        setTimeout("$('#buttonid').click()", DelayDuration);
    });
    

    //DelayDuration表示给出毫秒值,1000毫秒=1秒

这里问了同样的问题

JQuery events don't work with ASP.NET MVC Partial Views

Is it possible to kick off a javascript function after a partial view renders in MVC Asp.net?

关于jquery - $(document).ready() 在加载部分 View 之前触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27615022/

相关文章:

jQuery - 确保检查所有单选组

c# - 堆栈不足,无法继续安全地执行程序。 ASP.NET MVC 4

javascript - MVC 使用参数从 View 重定向到 Controller

php - 动态创建的索引字段未随表单提交

javascript - 跳过 Javascript 循环中的错误

html - 在 MVC 3 Razor 中以两列而不是一列显示字段的模板

asp.net-mvc - 如何使用绑定(bind)前缀?

c# - asp.net mvc 和 Controller 服务架构

javascript - 如何使用jquery获取按id(0到n)选择的输入值的总和?

javascript - 分层选址