为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Helenr 2019-04-03 02:01:46
现在动态在如下结构中生成元素:(<li>中间的元素是动态生成的)<div><ul><li><span><i class="icon J_classtree">这是元素内容</i></span></li></ul></div>现在想为<i>添加点击事件:$(".J_classtree").on("click",function(){alert("终于进来了");});但是一直不成功,请问是怎么回事呢?
查看完整描述

4 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

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



 


查看完整回答
反对 回复 2019-04-04
?
三国纷争

TA贡献1804条经验 获得超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这个类,那段功能函数就添加不了了。


查看完整回答
反对 回复 2019-04-04
?
慕姐8265434

TA贡献1813条经验 获得超2个赞


1

2

3

4

$(document).on('ul li span .icon J_classtree','.get_more',function(){

alert("hello");

 

});


 


查看完整回答
反对 回复 2019-04-04
  • 4 回答
  • 0 关注
  • 512 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信