您的位置:首页 > Web前端 > JQuery

jquery 动态增加的html元素,初始化设置在id或class上的事件无效

2018-01-19 18:08 351 查看
<body>
<div id="box"></div>
</body>

一般情况,我们会在页面初始化完成后对class定义一些全局事件,举个例子:

$(function() {

$(".bot").on("click", function() {
alert("977");
});

正常情况下,这样的写法是正确的。可是往往当我们需要通过jquery动态的添加一些html元素到界面时,会发现定义的全局方法对新增元素无效了,举个例子:
$("#box").append("<div class='bot'>123</div")

以前处理的方案是初始化事件时使用live,栗如:

$(".bot").live("click", function() {
alert("123");
});

今天使用jquery 1.10.2时居然提示live关键字无效,百度一下,原来在新版本的jquery中去掉了live关键字,新的写法如下:

$(function() {
$(document).on("click", ".bot", function(e) {
alert("789")
})
});

测试后,成功解决
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息