jQuery Ready代码没有执行

时间:2011-07-08 17:17:52

标签: jquery asp.net asp.net-mvc asp.net-mvc-3

我的_Layout.cshtml中包含以下代码,目标是删除后的视图,通过嵌套在_Layout.cshtml下方的一个级别。

<title>@ViewBag.PageTitle</title>
<link rel="icon" type="image/png" href="@Url.Content("~/Images/favicon.png")" />
<link rel="stylesheet" type="text/css" href="@Url.Content("~/Content/Blueprint/screen.css")" media="screen, projection" />
<link rel="stylesheet" type="text/css" href="@Url.Content("~/Content/Blueprint/print.css")" media="print" />
@Html.Telerik().StyleSheetRegistrar().DefaultGroup(group => group.Add("telerik.common.css").Add("telerik.simple.css"))
@RenderSection("MainBodyStyling", false)
<script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function () {
        debugger;
        //$("iframe").width($("iframe").contents().find("table").width());
    });
</script>

我无法在Chrome或Firefox 5.0中执行jQuery代码,甚至只是调试器调用。这是在MVC3项目中的jQuery 1.4.4。当我将它粘贴到Firebug和Chrome JS控制台时,代码可以工作,因此我知道代码本身并没有错。

更正:我添加了带引号的错误文档作为最后一次尝试。我曾尝试过我的默认设置(我已经习惯使用jQuery),$(function () {语法,没有区别。真正的问题不是我的语法,而是正确的代码没有执行。我删除了引号,没有任何区别。

ADDENDUM:如果我在debugger行上设置断点,则代码会停在Chrome控制台的断点处。我不知道这是什么。

6 个答案:

答案 0 :(得分:6)

请勿在{{1​​}}周围使用引号。

document

或者更好的是,只需将处理函数直接传递给jQuery方法(它是$(document).ready(function () { }); 的别名):

ready

答案 1 :(得分:4)

document应该没有引号:

$(document).ready(function() {
    debugger;
});

答案 2 :(得分:1)

在选择器中有一个字符串“document”,它需要是文档对象

$(document).ready();

答案 3 :(得分:1)

如前所述,document不应该有引号。为了避免这种情况,你可以做到

$(function() {
    debugger;
});

而是定义一个就绪回调

答案 4 :(得分:1)

将您的脚本放在关闭正文标记之前的文档底部。这是非阻塞的,并且避免了对doc ready块的任何需要。双赢。

来自雅虎的{p> Further reading和Dave Ward的here

答案 5 :(得分:0)

jquery-1.4.4.min.js未包含在脚本文件夹中,因此无法使用。

我用jquery-1.5.1.min.js替换了它,问题解决了。