发布于 1970-01-01 08:00
  • 10 个回答
    • $('.a').on('click',function(e){ alert(1) })

      楼主可以试下这个,官方推荐用on

      那个是因为动态添加元素吧,建议楼主去看下对于动态添加元素如何绑定事件的。
      大概代码是这个样子的

      $('div').on('click','.a',function(){})
      2022-11-30 22:46 回答
    • 为什么不能用?
      因为你绑定的元素在页面文档结构生成后就已经绑定了,但是通过动态生成的dom结构是没法用先前的click方法的,因此你需要重新绑定或者是动态绑定,

      $('div').delegate('a', 'click' ,function(){
          //To do
      })

      当然了,如果还是不行,那么你可以考虑吧上面这个事件封装成一个方法,然后再//To do里面递归调用~

      2022-11-30 22:46 回答
    • 哦,绑定的时候实例还不存在自然绑定不上了。以前有个live方法可以解决你这个问题,现在好像改成别的方式(名字)了,查一下手册呗。

      2022-11-30 22:46 回答
    • 都可以啊啊啊

      2022-11-30 22:46 回答
    • 如果是动态添加的话,我感觉这样就可以了$(document).on('click','.a',function(){...});

      2022-11-30 22:46 回答
    • 那是你克隆的问题吧,楼主可以看下clone()方法,传入参数true,会把元素上绑定的方法一起克隆的。或者就用上面提到的代理的方法

      2022-11-30 22:46 回答
    • 如果模块化批量方法,extend更好;

      $(function(){
          $.fn.extend{
              simple:function(){
                  var root=$(this);
                  root.click(function(){
                      alert($(this));
                  })
              }
          }
          $('.a').simple();
      })
      2022-11-30 22:46 回答
    • $('body').click(function(e){
        var tar = e.target;
        if($(tar).hasClass('a')){
         xxxxx
       }
      });

      这样就OK了!

      2022-11-30 22:46 回答
    • 1楼没答到点上,确实是动态追加dom的问题,所以需要通过委托父节点监听来解决,最简单的是委托文档节点,毕竟所有的dom都是追加在文档节点的后代中:$(document).on('click','.a',function(){...})

      2022-11-30 22:46 回答
    • 动态添加的dom 监听其父元素,例如

      <div class="parent">
          <div class="a"></div>
      </div>
      <script>
      $(".parent").on("click",".a",function(){
          //调用jquery克隆一份a标签,做一些其他修改
      });
      </script>
      2022-11-30 22:46 回答
    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有