2010-08-16 3 views
4

Мне бы хотелось узнать, можем ли мы связать загруженное или готовое событие с элементом, созданным скриптом при загрузке dom. Я слышал из live(), но это не что-то доступное для клика, это просто элемент, который нужно загрузить.Событие Bind ready для создания элемента javascript dom

Благодарим за помощь!

ответ

2

Я думаю, что ваш лучший снимок - это событие load.

$('element').load(function(){ 
    alert('loaded'); 
}); 

родной

var elem = document.getElementById('element_id'); 
elem.onload = function(){ 
    alert('loaded'); 
}; 

Другой пример для динамического создания:

$('<img/>', { 
    src: '/images/myimage.png', 
    load: function(){ 
    alert('image loaded'); 
    } 
}).appendTo(document.body); 
+0

Проблема в том, что я не могу редактировать родительский элемент. – Artusamak

0

Если вы хотите, чтобы иметь возможность отделить куски кода для создания пункта и грузоподъемного вас событие может попытаться, чтобы ваш динамически созданный элемент запускал пользовательское событие в окне:

var myElement = $('<img/>', { 
    src: '/images/myimage.png' 
}).appendTo(document.body); 

$(window).trigger({type: "myElementInit", myObject : myElement}); 

С указателем назад к себе в дополнительных параметрах вы могли бы иметь отдельную настройку обработчика в jQuery (документе). Уже искать событие окна «myElementInit» и захватывать ссылку на элемент из дополнительные параметры:

jQuery.('window').bind("myElementInit", function(event){ 
    var theElement = event.myObject; 
... 
}); 
+0

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

+0

не уверен, что я понимаю. можете ли вы опубликовать фрагмент кода? что вы имели в виду «Я слышал от живого()»? –

+0

Я не могу опубликовать код. 1/У меня есть сценарий, который я не могу изменить, добавив div в dom, когда документ готов. 2/У меня есть мой скрипт, который добавляет другой div в dom и который нужно создать после того, как div, созданный в 1 /, был действительно добавлен в DOM Насколько это ясно? – Artusamak

0

Вы можете использовать делегированные форму .on() события, а documented here:

делегированного событие имеет то преимущество, что они могут обрабатывать событие от узлов, которые будут добавлены в документ позже. Выбрав элемент, который, как гарантируется, будет присутствовать во время присоединения делегированного обработчика , вы можете использовать делегированные события , чтобы избежать необходимости часто прикреплять и удалять обработчики событий. Этот элемент может быть элементом контейнера представления в дизайне модели-View-Controller , например, или document, если обработчик события хочет контролировать все события пузырьков в документе. Элемент document доступен в начале документа до , загружая любой другой HTML-код, поэтому можно безопасно подключать к нему события без , ожидая готовности документа.

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