js教程

动态生成元素触发事件无效的解决方法

精准像素 2020-08-09 人阅读

在写JS时,我们在处理动态生成的HTML触发事件时,会无效。比如:

$("body").html("<b>I Love www.11px.cn</b>");
$("b").click(function(){alert(123)})

你会发现点击B标签,并不会触发alter弹窗。具体逻辑原因精准像素没深究,希望研究的可以去网上看看。

这里精准像素只分享方法,会用到JQ的.on语法。

$("body").html("<b>I Love www.11px.cn</b>");
$("body").on("click","b",function(){
alert(123)
});

这个就相当于重新选取了一次,从body开始一直到下面的b标签,这样就可以重新触发生成的B标签事件了。

当然里面的click点击事件也可以换成其他任何事件。

写的不是非常专业,希望能够帮助大家。