jquery 对于新插入的节点 的操作绑定(点击事件,each等)

因为最近项目遇到这个问题,下面给大家带来一篇Jquery对新插入的节点 获取并对这个节点绑定事件失效的解决方法。我觉得挺不错的,大家也可以参考一下:

对于绑定事件来讲:

      方法一:使用live

       live()函数会给被选的元素绑定上一个或者多个事件处理程序,并且规定当这些事件发生时运行的函数。通过live()函数适用于匹配选择器的当前及未来的元素。比如,通过脚本动态创建的元素。

       实现如下:

1
2
3
$('.liLabel').live('click', function(){
 alert('OK');
});

       方法二:使用on

      可以通过on方法绑定事件,可以绑定到它的父级或者body中,实现如下:

1
2
3
4
5
6
7
$("#ulLabel").on('click','.liLabel',function(){
 alert('OK')
});
或者:
$("body").on('click','.liLabel',function(){
 alert('OK')
});

 

 

 

 

对于each()事件来讲:

     方法一、刚创建完元素的时候,就立刻使用each方法

     代码如下:

     $('#btn').on("click", function(){

          $('#div').append("<input type='text' />");

          $("input").each(function(){

              //TODO:

          });

     });

    方法二、使用setTimeout方法在页面加载完成一段时间后再使用each方法

    代码如下:

    setTimeout(function(){

        $("input").each(function(){

            //TODO:

        });

    },1000);

 

是不是新插入的节点 对这个节点绑定事件失效问题解决了,希望这篇随笔能够帮助大家

     

posted @ 2017-09-13 12:41  -鹿-  阅读(1152)  评论(0编辑  收藏  举报