【问题标题】:jQuery ready() in asp.net mvc2 only fires on first visitasp.net mvc2 中的 jQuery ready() 仅在首次访问时触发
【发布时间】:2010-07-28 15:31:26
【问题描述】:
<script type="text/javascript">
$(document).ready(function() {
     alert("Hello jQuery.");
});
</script>

这在我第一次请求/Home/Index 时有效,但如果我导航到例如/Account/Login 然后返回/Home/Index 它不起作用。每次都使用 webforms 项目做同样的事情。我错过了什么?谢谢。

【问题讨论】:

  • 页面上是否发生了其他一些 javascript 错误?检查您的控制台以确保不是这种情况。
  • 这个脚本在哪里?,母版页 | /Home/Index.aspx ...

标签: jquery asp.net asp.net-mvc asp.net-mvc-2 ready


【解决方案1】:

这不是答案。试试这个:

<div id="test-ready"></div>
<script type="text/javascript">
        $("#test-ready").append("<span>pre ready</span><br />");
        $(document).ready(function() {
            $("#test-ready").append("<span>in ready (hello jQuery)</span><br />");
            //alert("Hello jQuery.");
        });
        $("#test-ready").append("<span>pos ready</span><br />");
</script>

【讨论】:

    【解决方案2】:

    试试这个:

    $(function() {
        alert("Hello jQuery.");
    });
    

    http://api.jquery.com/jQuery/#jQuery3

    也许它会给你带来更少的麻烦。

    【讨论】:

    • 其实是一回事,只是换一种说法。
    • 是的,但有时只是改变你说同样事情的方式会有所帮助。这就是为什么它认为“可能”。
    【解决方案3】:

    感谢您的回复。答案和一个问题:对 .js 文件的相对引用对于 http: //localhost:12345/ 来说是可以的,但对于 http: //localhost:12345/Home/Index 来说不行 - 实际上它们是相同的资源,但对于 mvc 内部却不是,尽管事实上 mvc“路径”是逻辑而不是物理 - 那么为什么 mvc 使 .js 引用相对于逻辑路径?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-08
      • 2017-12-31
      • 1970-01-01
      • 2014-02-08
      • 2011-04-27
      • 1970-01-01
      相关资源
      最近更新 更多