jquery无法为动态生成的元素添加点击事件 5

我的jquery是1.11.0,现在动态在如下结构中生成元素:(<li>中间的元素是动态生成的)<div><ul><li><span><iclass="iconJ_cla... 我的jquery是1.11.0,现在动态在如下结构中生成元素:(<li>中间的元素是动态生成的)
<div><ul><li><span><i class="icon J_classtree">这是元素内容</i></span></li></ul></div>
现在想为<i>添加点击事件:
$(".J_classtree").on("click",function(){
alert("终于进来了");

});
但是一直不成功,请问是怎么回事呢?
展开
 我来答
大野瘦子
高粉答主

推荐于2019-09-19 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:1227
采纳率:100%
帮助的人:31.7万
展开全部

如果你的元素是用click事件append进来的,那你的功能函数必须放在这个click事件里面。

比如:

$(".clickMeToAppendElement").click(function() {

$(".toBeAppend").append("<li><span><i class=\"icon J_classtree\">这是元素内容</i>");

$(".J_classtree").on("click",function(){

alert("终于进来了");

});

);

如果你把函数放在click事件外面,最初加载页面的时候,$(".J_classtree")就找不到.J_classtree这个类,那段功能函数就添加不了了。

扩展资料:

关于上述click事件

click事件的写法:

方法一:

<!DOCTYPE html>

<html>

<head>

<title>Javascript中点击事件方法一</title>

</head>

<body>

<button id="btn">click</button>

<script type="text/javascript">

var btn = document.getElementById("btn");

btn.onclick=function(){

alert("hello world");

}

</script>

</body>

</html>

方法二:

<!DOCTYPE html>

<html>

<head>

<title>Javascript中点击事件方法二</title>

</head>

<body>

<button id="btn">click</button>

<script type="text/javascript">

var btn = document.getElementById("btn");

btn.addEventListener('click',function(){

alert("hello wrold");

},false)

</script>

</body>

</html>

卍解斩月
推荐于2018-02-22 · TA获得超过5252个赞
知道大有可为答主
回答量:1405
采纳率:25%
帮助的人:1121万
展开全部
要看看你是怎么“动态添加”元素的。
如果你的元素是用click事件append进来的
那你的功能函数必须放在这个click事件里面。
比如:
$(".clickMeToAppendElement").click(function() {
$(".toBeAppend").append("<li><span><i class=\"icon J_classtree\">这是元素内容</i>");

$(".J_classtree").on("click",function(){
alert("终于进来了");
});
);

如果你把函数放在click事件外面,
最初加载页面的时候,$(".J_classtree")就找不到.J_classtree这个类,那段功能函数就添加不了了。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
21世纪潦草的生命
2017-11-11
知道答主
回答量:16
采纳率:0%
帮助的人:1.5万
展开全部
$(document).on("click",".***",function(){
alert(1);
});
但是如果用document的话,你的所以操作都会检测的,所以资源会占用多,可以把document改成你所需点击事件的已知父类ID或者已知CLASS
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-12-19
展开全部
$(document).on('ul li span .icon J_classtree','.get_more',function(){
alert("hello");

});

需要用这种写法:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蓝SE禁药
2014-07-29 · TA获得超过116个赞
知道答主
回答量:64
采纳率:0%
帮助的人:54.5万
展开全部
$('ul li span .icon J_classtree ').live('click',function(){
    alert("终于进来了");
})
追问
还是不行。
追答
$('ul li span .icon .J_classtree ').live('click',function(){
    alert("终于进来了");
})
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式