2013-04-09 5 views
3

Я хочу добавить что-то к элементу, когда он загружен/доступен.Изменение содержимого, когда div существует или загружен

<div class="main"> 
    <div class="dynamic"> 
    </div> 
    <div class="dynamic"> 
    </div> 
</div> 

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

Я попробовал это так, но это не работает:

$('.main').on('load/change', 'div.dynamic', function() { 
    $(this).html("add something"); 
}): 

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

Возможно, это простая задача, но я не могу найти ответ.

Я был бы признателен за помощь.

+3

Не существует события кросс-браузера, который будет срабатывать, когда элемент станет доступным. Вместо этого сделайте это, когда элемент добавлен, например, в обратном вызове успеха запроса ajax. –

+0

Почему не удалось изменить код JS? Я думаю, что это indespensable, в противном случае вы будете полагаться на интервалы или другие методы exausting –

+0

, возможно, вы могли бы использовать это http://stackoverflow.com/questions/1091661/detect-element-content-changes-with-jquery –

ответ

0

эй дружище вы можете использовать этот код легко

<script> 
$(document).ready(function() { 
    $("div.dynamic").html("add something"); 
}); 

она отлично работает для меня.

+0

2-й div добавлен после document.ready – DaveB

+0

Да, это проблема. – Andy

0

Вы могли бы сделать что-то вроде этого ...

setInterval(function() { 
    if($('.main .dynamic').length>1)){ 
     $('.main .dynamic').html("add something"); 
    } 
}, 150); 

Где 150 это время опроса в мс (он проверяет на 2-й динамической DIV каждые 150мс)

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

+0

Даже если его грязное это решение. :) – Andy

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