我很确定答案并不那么难,但我不确定在哪里寻找它。
我想在创建div时附加一个jQuery事件处理程序。例如:
$('#somediv').click(function(){
//do something
});
但...... #somediv
不存在。由于一些AJAX加载它会。所以我需要的是像。
$('#somediv').whenImcreated(function(){
$(this).click(function(){
//do something
});
});
答案 0 :(得分:3)
您需要委派活动:
$(document).on('click', '#somediv', function(){
//do something
});
请注意,虽然document
作为主要选择器可以使用,但为了获得最佳性能,您应该将其作为#somediv
中最接近的父元素,该元素出现在document.ready
上的DOM中。
答案 1 :(得分:2)
使用.on()
由于元素是动态添加的,因此无法将事件直接绑定到它们。因此,您必须使用Event Delegation。
$(document).on('click', '#somediv', function(){ ... });
语法
$( elements ).on( events, selector, data, handler );