创建元素时的jQuery事件

时间:2012-02-13 15:03:00

标签: jquery

我想在创建元素时触发事件。

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

是否有相同的效果?

我看到有些人建议使用livequery,但这看起来很重。

感谢。

3 个答案:

答案 0 :(得分:5)

我不认为这样的事情是直接存在的,但你可以处理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;
    }
});

Live test case

缺点是Opera和IE不支持小于9 - see here的完整细节。

答案 1 :(得分:3)

使用此插件:livequery

或看到这个链接;

How to detect new element creation in jQuery?

答案 2 :(得分:2)

您可以触发全局自定义事件:

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

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