如何在每次创建div时触发一个触发的事件?
我正在思考这个问题,但显然不是。
$("#content").on("create", "div.block", function () {
$(this).css({"background-color":"#FF0000"});
});
我发现了MutationObserver(https://stackoverflow.com/a/11546242/165737),但正如评论中所见,这在IE中不起作用。
答案 0 :(得分:0)
你可以使用一个变异事件(DOMNodeInserted)......但IE可能无法完全解决这个问题。
http://jsfiddle.net/kasperfish/AAd8f/
$(function() {
$('#btn').click(function(){
$('body').append('<div style="width:30px;height:30px;border:1px solid black"></div>');
});
$(document).on('DOMNodeInserted', function(e) {
$(e.target).addClass('blue');
});
});
我想要注意,最好使用回调事件而不是监听DOM。在DOM中插入div后,您需要编写回调函数。我不认为还有其他(非hacky)方法可以实现这一目标。
答案 1 :(得分:0)
您可以尝试这样的内容而不是MutationObserver,以便在div.block
div#content
时收到通知
$(function(){
var c = $('#content'), l = c.find('.block').length;
setInterval(function(){
var lOld = l;
if(c.find('.block').length > lOld) {
l = c.find('.block').length;
c.find('.block').css({"background-color":"#FF0000"});
}
}, 100);
});
An example此处another example有多个Background color
效果。