2013-10-24 5 views
0

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

У меня есть html-страница, которая загружает iFrames. У меня есть только доступ к родительской странице html, и динамически загруженный элемент находится на iframe.

Когда я пытаюсь что-то вроде этого:

$(document).ready(function() { 
    $(document).on("click", "#link1", function() { 
     alert("link loaded"); 
    }); 
}); 

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

Я пытался использовать что-то вроде следующего, но он не:

$(document).on("load", "#link1", function() { 
    alert("link loaded"); 
}); 

PS: Когда IFrame загружается он делает некоторые Ajax загрузки материала, а затем появляется link1. Поэтому я не могу связать событие с iframe.load()

+0

Вы можете использовать наблюдатели или события мутации, но поддержка браузера для каждого из них очень ограничена. Как правило, нет никакой причины писать код таким образом, лучше вместо этого запускать код или запускать событие, когда происходит событие, которое генерирует ссылку. –

+0

@KevinB я могу использовать только IE :( – MaVRoSCy

+0

Запустите свой код в успехе «ajax loading stuff». Вот что я намекал в своем первом комментарии. –

ответ

1

Как насчет простоты использования функции load()?

$(function(){ 
    $('#myIframe').load(function(){ 
     $(this).show(); 
     alert('link loaded'); 
    }); 
}); 

или я неправильно понял вашу проблему?

+1

Если 'myIframe' не найден, потому что он был динамически добавлен, вам нужно будет использовать' $ (document) .find ('# myIframe'). .load (function() {} 'Но я не уверен, что это' 'или'