这是我的html
<div id="main">
<div class="submit">welcome</div>
</div>
这是我的jquery
$(".submit").click(function()
{
$("$main").append('<div class="submit">welcome</div>');
});
这对第一个 div 有效。这个事件对新添加的 div 无效?
如何解决这个问题?
最佳答案
您有两个选择,委派(分配由父级检测的点击处理程序):
$('#main').on('click', 'div.submit', function(){
// this is your click-handler
});
或者通过在元素创建点绑定(bind)点击处理程序:
$(".submit").click(function() {
$('<div />', {
'class' : 'submit',
'on' : {
'click' : function(){
// this is your click-handler
}
}).appendTo('#main');
});
显然,如果你有一个命名函数要调用,你可以分配它而不是使用匿名函数:
$('#main').on('click', 'div.submit', namedFunctionToCall);
或者:
$(".submit").click(function() {
$('<div />', {
'class' : 'submit',
'click' : namedFunctionToCall
}).appendTo('#main');
});
引用资料:
- > Creating elements, with jQuery .
- >
on()
.
关于javascript - 如何在 jquery 中为新添加的 div 添加点击事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20997067/