zoukankan      html  css  js  c++  java
  • 元素绑定事件几种方式

    一、元素绑定事件几种方式(Js方式)

    1:HTML中添加onclick

    <button id="vv" onclick="myfunction()" >哈哈</button>

    2:JS中定义函数绑定事件!(写法一)

    var funcc = function () {
      alert('我爱编程')
      }
    var aa = document.getElementById('vv')
    aa.onclick = funcc

    3:直接定义函数与内容(写法二)

    document.getElementById('vv').onclick = function () {
      alert('hasssshhaa ')
      }

    4:利用addEventListener

    document.getElementById('vv').addEventListener('click',funcc);
    //或者:
    document.getElementById('vv').addEventListener('click',function () {
      alert('hahah')
    })
    <div id="btn" onclick="clickone()" onclick="clicktwo()"></div> 
    <script>
       function clickone(){ alert("hello"); } //执行这个
       function clicktwo(){ alert("world!"); }
    </script>
    <div id="btn"></div>
    <script>
     document.getElementById("btn").onclick = function(){ alert("hello"); }
     document.getElementById("btn").onclick = function(){ alert("world"); } //执行这个
    </script>
    <div id="btn"></div>
    <script>
      document.getElementById("btn").addeventlistener("click",clickone,false);
      function clickone(){ alert("hello"); } //先执行
      document.getElementById("btn").addeventlistener("click",clicktwo,false);
      function clicktwo(){ alert("world"); } //后执行
    </script>

    二、元素绑定事件几种方式(Jq方式)

    1. 简单事件绑定:

    这种绑定事件方式不会重叠(使用场景,场景:涉及dom操作-用户触发,这种情况一般dom都会加载完毕,没有影响,但是图片的长时间加载情况下,用户点击则出问题,Dom的操作用户触发。

    $(document).click(function () {
        alert(1);
    })

    //可以写这种形式(使用场景,通用方法,场景:涉及dom操作-自动触发则使用,必须dom加载完毕-建议采纳推荐此方法-没有什么方法是写在$(fu(){}))解决不了的。

    $(function(){
       $(document).click(function () {
            alert(1);
        })
    });

    但是有弊端,是我的表格数据分页有图片,第一页的可以,当我异步刷新表格后,无效。

    2.bind方式(不推荐,1.7以后的jQuery版本被on取代)

     $(document).bind("click mouseenter",function () {
        alert(1);
     })

    比简单事件绑定方式的优势:
    可以同时绑定多个事件,比如:bind(“mouseenter mouseleave”, function(){})
    缺点:要绑定事件的元素必须存在文档中。

    3. delegate方式(特点:性能高,支持动态创建的元素)

    与前两种方式最大的优势:减少事件绑定次数提高效率,支持动态创建出来的元素绑定事件!

    $(document).delegate(".box","click",function () {
          alert(1);
    })

    4. on方式(最现代的方式,兼容zepto(移动端类似jQuery的一个库),强烈建议使用的方式)(重点)

    $(document).on("click mouseenter",".box",{"name":111},function () {
        alert(event.data.name);
    });
    $(".box").on("click",{},function (e) {
        e.data
    })
  • 相关阅读:
    #JVM方法区、堆、栈’#
    #前端# 解决前端页面滑动不顺畅的问题
    【Web协议】服务器推送浏览器:Server-Sent Events(SSE)
    【性能调优】Java程序CPU高定位
    转载 I/O模型:BIO/NIO/AIO 学习
    【性能调优】Java程序内存高定位
    算法--字符串:最长回文子序列
    算法--字符串:最长递增子序列LIS
    算法--字符串:最长回文子串
    算法--字符串:最长公共子序列LCS
  • 原文地址:https://www.cnblogs.com/fger/p/11647542.html
Copyright © 2011-2022 走看看