2012-05-31 2 views
0

У меня проблема с запуском $(). Ready, независимо от того, что я ввел в параметр, что означает, что он фактически запускается до страница готова. Я использую ASP.NET, смешанный с EXT.NET, и хотел бы реализовать jQuery, чтобы немного подправить вещи. Как говорится в описании, оно срабатывает независимо от того, что, если я поставлю «123» в параметр, он покажет мне alart(). Вот код бег:

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

В результате «.x-столбцах внутренних» является недействительным, так как он не закончили составление страницы и уже выполняется в JavaScript.

ответ

3

Метод .ready игнорирует то, что находится в селекторе полностью. Он запускается только при запуске события DOMContentLoaded браузером.

Обратите внимание, что DOMContentLoaded может запускаться до того, как будут загружены изображения и css-листы, что приведет к точным измерениям высоты и ширины. Если это проблема для вас, вам нужно использовать $(window).load();

Если событие DOMContentLoaded уже запущено, готовый обратный вызов будет выполнен немедленно.

+0

Есть ли способ, чтобы заставить его ждать и все остальное, чтобы загрузить? Кажется, что ASP заканчивает сначала загрузку сайта, а затем заполняет все, используя бэкэнд. –

+0

Что такое «все остальное»? это ajax? изображений? плавающие фреймы? Если это изображения или iframes, вы можете использовать метод '$ (window) .load()'. В противном случае, я не уверен. –

+0

ваш метод работает. Спасибо. –

1

Вы пропускаете период в вашем первом селекторе:

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

К сожалению, это не имеет ничего общего с проблемой. –

+0

Кевин, скорее всего, прав. Что не делается загрузка? Трудно помочь, не видя ни одного соответствующего html. –

Смежные вопросы