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

Я хочу вызвать функцию после того, как элемент был создан. Есть ли способ сделать это?

Пример:

$("#myElement").ready(function() {
    // call the function after the element has been loaded here
    console.log("I have been loaded!");
});
26
задан Dennis Martinez 17 June 2011 в 13:02
поделиться

1 ответ

Как вы создаете элемент?

Если вы создаете его в статическом HTML, тогда просто используйте .ready(handler) или .on("load", handler). Если вы используете AJAX, это еще один котелок с рыбой.

Если вы используете функцию load() в jQuery, то при загрузке содержимого можно выполнить обратный вызов:

$('#element').load('sompage.html', function(){ /* callback */ });

Если вы используете $.ajax или $.get / [jQuery]. 1111] функции, то есть обратный вызов успеха в этом:

$.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'});
40
ответ дан 28 November 2019 в 07:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: