2010-10-01 4 views
1

Я хочу сделать сообщения об ошибках, которые появляются (в #error div), и исчезает со страницы на страницу в диалоговом окне интерфейса jQuery. Некоторые сообщения об ошибках динамически добавляются jQuery $ ('body'). Append ('blablabla') или другой метод вставки. Таким образом, эта конструкция:jQuery .dialog on load()

$('#error').load(function() { 
    $('#error').dialog({ 
     draggable: false, 
     modal: true 
    }); 
}); 

не работает. Это:

$('#error').live('load', function() { 
    $('#error').dialog({ 
     draggable: false, 
     modal: true 
    }); 
}); 

также не работает. Может ли кто-нибудь сказать мне, что мне делать?

ответ

1

Вы пытаетесь показать диалоги при загрузке страницы? Если это так, вы ищете $(document).ready(). Обратите внимание, что это действительно вызовет внутреннюю функцию, когда DOM готов к переходу; это обычно то, что вы хотите, потому что вы не хотите дождаться, когда браузер полностью загрузит страницу перед выполнением вашего кода.

Если вы действительно хотите подождать, пока страница будет загружена, используйте $(window).load().

Событие load может быть привязано к содержанию, которое на самом деле загружено у браузера, например. фреймы, скрипты, изображения и т.д.:

Событие нагрузки посылается к элементу , когда он и все суб-элементы были полностью загружена. Это событие может быть отправлено любому элементу, связанному с URL-адресом : изображениями, сценариями, фреймами, iframe, и объектом окна.

Таким образом, a <div> не может быть связан с событием load.

+0

Это очень плохо. Моя цель - обернуть элемент в диалог, когда он появится в DOM. – Antiarchitect

+0

Затем просто используйте '$ (document) .ready()' - он вставляет диалог, когда DOM готов к обходу. –

+0

Не работает. Я думаю, это потому, что элемент #error добавлен динамически после того, как документ готов. Или я неправильно понимаю, как работает js. – Antiarchitect