猿问

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

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

});
但是一直不成功,请问是怎么回事呢?

qq_花开花谢_0
浏览 1602回答 4
4回答

慕无忌1623718

如果你的元素是用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>&nbsp;

茅侃侃

要看看你是怎么“动态添加”元素的。如果你的元素是用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这个类,那段功能函数就添加不了了。

繁花不似锦

1234$(document).on('ul&nbsp;li&nbsp;span&nbsp;.icon&nbsp;J_classtree','.get_more',function(){alert("hello");&nbsp;});
随时随地看视频慕课网APP

相关分类

JQuery
我要回答