创建元素时的jQuery事件

rpo*_*agr 11 jquery

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

$(document).on('load','#TB_title',function() {
    console.log('loaded');
});
Run Code Online (Sandbox Code Playgroud)

是否有相同的效果?

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

谢谢.

Sha*_*ard 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;
    }
});
Run Code Online (Sandbox Code Playgroud)

现场测试案例.

缺点是它不支持Opera和IE不到9 - 请看这里的全部细节.


osa*_*oun 3

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

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

$('#element').bind('nameOfCustomEvent', function(){
  console.log(this);
});
Run Code Online (Sandbox Code Playgroud)