在JavaScript / jQuery中,如果我想拥有一个可以在已添加到DOM的元素上运行的函数,则必须在将元素添加到DOM之后创建它。我怎样才能做到这一点?我听说可以使用jQuery .on()
函数来做到这一点,但我不确定如何做到这一点。
HTML:
<span>Hello Stackoverflow</span>
JavaScript:
$("span").click(function () {
addMyElement();
});
$("p").click(function () {
removeMyElement(this);
});
function addMyElement() {
$("<p>Hello World</p>").appendTo("body");
}
function removeMyElement(myElement) {
$(myElement).remove();
}
jsFiddle.net上的示例。
最佳答案
这称为delegated-events approach,其工作方式如下:
$("body").on("click", "p", function () {
// ...
});
可以使用
body
的任何父元素来代替p
。演示:http://jsfiddle.net/wWXrK/6/