zoukankan      html  css  js  c++  java
  • 随笔一个dom节点绑定事件

      以下利用jquery说明:

        js中,给一个dom节点绑定事件再平常不过了。这里说下,如果dom经常发生变化的话,给这个dom绑定事件的情况。

    比如代码如下:

    li的节点,绑定了事件:点击会打出来里头的html内容。

    button点击事件:会生成一个li节点。

     1 <html>
     2 <head>
     3     <meta charset="UTF-8">
     4 </head>
     5 <body>
     6 <ul class="ul">
     7     <li class="li">abc</li>
     8     <li class="li">abc</li>
     9     <li class="li">abc</li>
    10 </ul>
    11 
    12 <hr/>
    13 <button id="btn">add</button>
    14 </body>
    15 <script type="text/javascript" src="jquery.js"></script>
    16 <script type="text/javascript">
    17     $(function(){
    18 
    19         $('.li').click(function(){
    20             console.log(this.innerHTML);
    21         });
    22 
    23         $('#btn').on('click', function(){
    24             $('.ul').append('<li class="li">XXX</li>');
    25         });
    26 
    27     });
    28 
    29 </script>
    30 </html>

    如果这么写的话,点击以后生成的li节点,点击是不会打出log的~

    因为代码执行来看,未点击add时,我们给每一个li绑定了click事件,这仅限于当前dom树下的li。$('.li')仅是获取当前dom下的所有class为li的节点。

    当点击button后,再生成的节点,是绑定不上的。

    咋办咧?此时,我们会利用事件的冒泡或者捕获的机制,对li的父节点ul打主意~如果给ul绑定一个click事件,那么即便是点击新生成的它的子节点,不也有了事件么?哈哈~就是这样

    代码如下:

    $('.ul').on('click', '.li', function(){
         console.log(this.innerHTML);
    });

    我们给.ul绑定了事件,在其中选择.li选择器,这样就解决了~

  • 相关阅读:
    MVC模式在Java Web应用程序中的实例分析
    MVC模式在Java Web应用程序中的实现
    设计模式简析
    《大型网站技术架构:核心原理与技术分析》5,6,7章简析
    spring引入HikariCP连接池
    sring引入mybatis
    spring中通过JNDI、DBCP、C3P0配置数据源
    springMVC框架搭建
    Timer定时执行
    SQL大杂烩
  • 原文地址:https://www.cnblogs.com/firstForEver/p/5267264.html
Copyright © 2011-2022 走看看