jQuery document. уже странное поведение - PullRequest
0 голосов
/ 20 декабря 2011

мы пытаемся показать сообщение внутри fancybox, на событии загрузки страницы после успешной обратной передачи страницы.мы регистрируем скрипт на странице, используя метод Page.RegisterClientScript в ASP.NET. Вот код в файле .cs:

Page.ClientScript.RegisterStartupScript(GetType(), "Script", "ShowPopup('popup');", true);  

Вот функция javsacript ShowPopup:

function showPopup(p) {
    ShowFancyBoxDiv("#divMessage", 50, 300);
}

Но когда мы делаем это, только первая страница в окне отображается серым цветом, а при прокрутке остальная часть страницы остается активной и не серой.

Но когда мы добавляем таймер,как показано ниже, все работает отлично.

$(document).ready(function () {
    setTimeout(function () {
        ShowFancyBoxDiv("#divMessage", 50, 300);
        $("#fancybox-close").css("display", "none");
    }, 1000);
});

Итак, кто-нибудь может объяснить, что здесь происходит.Document.ready должен автоматически проверять, чтобы документ был полностью загружен, тогда зачем нам использовать эту функцию таймера ???Спасибо.

1 Ответ

0 голосов
/ 20 декабря 2011

Я подозреваю, что вы все еще можете загружать элементы, например изображения.Готов означает, что DOM готов.Это не означает, что все было загружено, как вы заявляете.Если вы хотите этого, тогда используйте .load.

$(window).load( function() {
   //code
} );

На этом сайте есть хорошая статья по этому поводу против готов.

http://web.enavu.com/daily-tip/daily-tip-difference-between-document-ready-and-window-load-in-jquery/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...