【发布时间】:2026-02-11 15:25:01
【问题描述】:
我在网上搜索但没有找到任何答案,因为这个“问题”不是关于 .on() 和 .click() 之间区别的常见问题。
对于 jquery 2.1.3,click 函数是 on.("click", handler) 的缩写,因此它应该在 dom 更改后触发一个函数(或 wathever)。
但这仅在我使用 .on() 时才有效。
为什么? (下例)
$('#button1').click(function() {
$('div').html("<p id="button2">Hello</p>");
});
$('#button2').click(function() {
alert(0); //THIS DOESN'T WORK
});
$(body).on("click", "#button2", function() {
alert(0); //THIS WORKS!
});
【问题讨论】:
-
即使它是
on(event, handler)的简写,您仍然将它附加到尚不存在的$('#button2');这就是为什么有on(event, selector, handler) -
您应该使用
on来动态创建元素。 -
@hamed 你也可以使用
click但是你不会有选择器匹配:jsbin.com/cifomehula/2/edit