Событие jQuery, когда элемент создан

Я хотел бы вызвать событие при создании элемента.

$(document).on('load','#TB_title',function() {
    console.log('loaded');
});

Есть ли эквивалент этого, который работает?

Я видел, как некоторые люди предлагали livequery, но это кажется тяжелым.

Спасибо.

Ответ 2

Я не думаю, что такая вещь существует напрямую, но вы можете обрабатывать событие DOMSubtreeModified и ждать, пока не сможете найти элемент с таким ID:

var _elementToFind = "TB_title";
var _elementFound = false;
var _counter = 1;
$(document).bind("DOMSubtreeModified", function(evt) {
    if (_elementFound)
        return;
    if ($("#" + _elementToFind).length > 0) {
        alert("element '" + _elementToFind + "' created");
        _elementFound = true;
    }
});

Живой тест.

Недостатком является то, что он не поддерживается Opera и IE менее 9 - см. здесь полную информацию.

Ответ 3

Вы можете вызвать глобальное настраиваемое событие:

$(document).on('load','#TB_title',function() {
  $.event.trigger('nameOfCustomEvent');  
});

$('#element').bind('nameOfCustomEvent', function(){
  console.log(this);
});