Как вы создаете элемент?
Если вы создаете его в статическом HTML, тогда просто используйте .ready(handler)
или .on("load", handler)
.Если вы используете AJAX, хотя это еще один чайник рыбы.
Если вы используете функцию jQuery load()
, то при загрузке содержимого можно выполнить обратный вызов:
$('#element').load('sompage.html', function(){ /* callback */ });
Если вы используете функции $.ajax
или $.get
/ $.post
в jQuery, то есть обратный вызов:
$.ajax({
url: 'somepage.html',
success: function(){
//callback
}
});
Если вы просто создаете элемент и добавляете его следующим образом:
$('body').append('<div></div>');
Тогда вы можете сделать это вместо этого:
$('<div />', { id: 'mydiv' }).appendTo('body').ready(function(){ /* callback */ });
Но это не имеет значения - потому что это синхронно (что означает, что следующая строка кода не будет работать, пока не будетв любом случае добавили элемент в DOM ... - если вы не загружаете изображения и тому подобное), так что вы можете просто сделать:
$('<div />', { id: 'mydiv' }).appendTo('body');
$('#mydiv').css({backgroundColor:'red'});
Но на самом деле, говоря, что вы можете просто сделать это:
$('<div />', {id:'mydiv'}).appendTo('body').css({backgroundColor:'red'});