在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/

09-30 16:34
查看更多