jquery无法为动态生成的元素添加点击事件 5
<div><ul><li><span><i class="icon J_classtree">这是元素内容</i></span></li></ul></div>
现在想为<i>添加点击事件:
$(".J_classtree").on("click",function(){
alert("终于进来了");
});
但是一直不成功,请问是怎么回事呢? 展开
如果你的元素是用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>
如果你的元素是用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这个类,那段功能函数就添加不了了。
alert(1);
});
但是如果用document的话,你的所以操作都会检测的,所以资源会占用多,可以把document改成你所需点击事件的已知父类ID或者已知CLASS
2014-12-19
$(document).on('ul li span .icon J_classtree','.get_more',function(){
alert("hello");
});
需要用这种写法:
$('ul li span .icon J_classtree ').live('click',function(){
alert("终于进来了");
})
还是不行。
$('ul li span .icon .J_classtree ').live('click',function(){
alert("终于进来了");
})