js中如何解决用append添加元素但是无法添加事件

bm123 发布于 2016/09/10 18:04
阅读 6K+
收藏 1
htmlstr="<li class=“divclick”  data-id='' data-tag='plusMaterialItem'>"+plusarry34[i].Name+"</li>"     
$('#plusMaterialContainer').append(htmlstr);
$(".divclick").click(function () {console.log("2")})

上面是js中运用append添加的一段代码,在页面也能正常显示,但是却不能使用点击事件,求大神们解决,谢谢
加载中
0
睡萝卜

var htmlstr=$("<li class=“divclick”  data-id='' data-tag='plusMaterialItem'>"+plusarry34[i].Name+"</li>"      )


$('#plusMaterialContainer').append(htmlstr);

$(".divclick").click(function () {console.log("2")}) 


0
wuyiw
wuyiw
class=“divclick” 这两个双引号看起来像是中文双引号,你改成英文的试试。
0
码以载道
码以载道
$('#plusMaterialContainer').on('click','.divclick',function(){
        //.........
})
多看看jquery的api具体用法
0
huison
huison
$('#plusMaterialContainer').on('click','.divclick',function(){
        console.log('2');
})

// 动态创建的元素要用on中的第二个参数绑定。



0
dasha
dasha
问题在于这俩个代码哪个先执行了,如果先执行$(".divclick").click 这个代码,那么后面所有动态添加的都不可点击,如果要后面动态添加同样监听事件,需要使用delegate方法。
0
_Jsonxu
_Jsonxu
click换成live绑定
_Jsonxu
_Jsonxu
或者on
0
fangPeng_
fangPeng_
使用事件代理去绑定,如果使用了jq可以使用on,如果没有使用jq就使用事件代理啦,怎么使用事件代理,可以去网上搜啦
0
Anymore
Anymore
加上ready:


<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <script src="libs/jquery.min.js"></script>
</head>
<body>
 <div id="plusMaterialContainer"></div>
 <script>
     $(document).ready(function(){
         var htmlstr;
         htmlstr="<li class=“divclick”  data-id='' data-tag='plusMaterialItem'>"+1+"</li>"
         $('#plusMaterialContainer').append(htmlstr);
         $("#plusMaterialContainer").click(function(){
             console.log("111");
         });
     });
 </script>
</body>
</html>


亲测可行。

返回顶部
顶部