sil*_*abu 0 html javascript css jquery
这是我的HTML
<div id="main">
<div class="submit">welcome</div>
</div>
Run Code Online (Sandbox Code Playgroud)
这是我的jquery
$(".submit").click(function()
{
$("$main").append('<div class="submit">welcome</div>');
});
Run Code Online (Sandbox Code Playgroud)
这里发生了什么事情正在为第一个div工作.这个事件不适用于新添加的div?
怎么解决这个?
您有两个选项,委托(指定父级检测到的点击处理程序):
$('#main').on('click', 'div.submit', function(){
// this is your click-handler
});
Run Code Online (Sandbox Code Playgroud)
或者通过在元素创建点绑定click-handler:
$(".submit").click(function() {
$('<div />', {
'class' : 'submit',
'on' : {
'click' : function(){
// this is your click-handler
}
}).appendTo('#main');
});
Run Code Online (Sandbox Code Playgroud)
显然,如果你有一个要调用的命名函数,你可以分配它而不是使用匿名函数:
$('#main').on('click', 'div.submit', namedFunctionToCall);
Run Code Online (Sandbox Code Playgroud)
要么:
$(".submit").click(function() {
$('<div />', {
'class' : 'submit',
'click' : namedFunctionToCall
}).appendTo('#main');
});
Run Code Online (Sandbox Code Playgroud)
参考文献: