$(“123”)。ready(fn(){})触发无论如何

时间:2012-05-31 19:03:14

标签: javascript jquery asp.net

我遇到一个问题,无论我在参数中放入什么都会触发$()。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"是null,因为它还没有完成编译页面并且已经在执行javascript。

2 个答案:

答案 0 :(得分:3)

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

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

如果DOMContentLoaded事件已被触发,则立即执行就绪回调。

答案 1 :(得分:1)

您错过了第一个选择器中的句号:

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