0

我有一个问题,无论我在参数中输入什么,$().ready 都会触发,这意味着它实际上是在页面准备好之前触发的。我正在使用与 EXT.NET 混合的 ASP.NET,并希望实现 jQuery 来增加一些趣味性。正如描述所说,无论如何它都会触发,所以如果我将“123”放入参数中,它无论如何都会向我显示 alart() 。这是正在运行的代码:

    $("123").ready(function () {
        var $kids = $("x-column-inner").children();
        alert($(".x-column-inner").height());
    });

结果“.x-column-inner”为空,因为它还没有完成页面编译并且已经在执行javascript。

4

2 回答 2

3

.ready方法完全忽略选择器中的内容。它仅DOMContentLoaded在浏览器触发事件​​时触发。

但是请注意,DOMContentLoaded 可能会在图像和 css 表单加载完成之前触发,从而导致高度和宽度测量不准确。如果这对您来说是个问题,您需要使用$(window).load();

如果DOMContentLoaded事件已经被触发,ready 回调将立即执行。

于 2012-05-31T19:05:31.877 回答
1

您在第一个选择器中缺少句点:

$(function () {
    var $kids = $(".x-column-inner").children();
    alert($(".x-column-inner").height());
});
于 2012-05-31T19:07:34.403 回答