• 绑定点击事件及解绑点击事件


     1、绑定点击事件onclick

    (1)一个事件由什么东西组成

       ○ 触发谁的事件:事件源

       ○ 触发什么事件:事件类型

       ○ 触发以后做什么:事件处理函数

    1. <div>div>
    2. <script>
    3. var oDiv = document.querySelector("div")
    4. oDiv.onclick = function(){}
    5. script>

    // 谁来触发事件 => oDiv => 这个事件的事件源就是 oDiv
    // 触发什么事件 => onclick => 这个事件类型就是 click
    // 触发之后做什么 => function () {} => 这个事件的处理函数

       ○ 我们想要在点击 div 以后做什么事情,就把我们要做的事情写在事件处理函数里面

    1. var oDiv = document.querySelector('div')
    2. oDiv.onclick = function () {
    3. console.log('你点击了 div')
    4. }
    • 当我们点击 div 的时候,就会执行事件处理函数内部的代码 

    • 每点击一次,就会执行一次事件处理函数

    • 事件是click,不加on,on是点击的动作

     (2)box.onclick = function(){}

    ● 这种绑定方式是dom0的类型的,会出现后面覆盖前面的执行函数

    1. <div>aaaadiv>
    2. <script>
    3. var oDiv = document.querySelector("div")
    4. //绑定第一个事件
    5. oDiv.onclick = function(){
    6. console.log("111")
    7. }
    8. //绑定第二个事件
    9. oDiv.onclick = function(){
    10. console.log("222")
    11. }
    12. script>

    结果是:222

    解释说明:当你给一个元素对象绑定两个点击事件时(onclick),当你点击元素内容,就只能打印出第二个结果,因为第二个事件把第一个给覆盖了,相当于赋值的意思。

    (3)使用dom2方式:绑定多个事件处理函数,按顺序执行

    addEventListener:事件处理器

    ● addEventListener(事件类型,函数)

    1. <div>aaaadiv>
    2. <script>
    3. var oDiv = document.querySelector("div")
    4. oDiv.addEventListener("click",function(){
    5. console.log("111")
    6. })
    7. oDiv.addEventListener("click",function(){
    8. console.log("222")
    9. })
    10. oDiv.addEventListener("click",function(){
    11. console.log("333")
    12. })
    13. script>

    结果:111   222   333 

     

    2、解绑事件

    (1)方法一:this.disabled = "disabled”

    1. <button id="btn">抽奖button>
    2. <script>
    3. btn.onclick = function(){
    4. console.log("谢谢惠顾")
    5. console.log(this)//打印一下当前获取的对象
    6. this.disabled = "disabled"
    7. }
    8. script>

    结果:

    解释说明:通过结果可以看出this当前获取的对象就是这个button元素,然后this.disabled = "disabled”的含义实质上就是给button标签加上一个disabled禁用属性罢了。

    缺点是:人家还可以打开后台代码设置,把这个button的disabled的属性删掉,又可以点这个按钮了

    (2)方法二:dom0方式:this.onclick  = null

    1. <button id="btn">抽奖button>
    2. <script>
    3. btn.onclick = function(){
    4. console.log("谢谢惠顾")
    5. this.onclick = null
    6. }
    7. script>

     当点击完一次以后直接给点击事件赋值为null。。。

    (3) 方法三:dom2方法:this.removeEventListener(事件类型,函数)

    removeEventListener:事件处理器,功能是移除事件

    1. <button id="btn">抽奖button>
    2. <script>
    3. function handler(){
    4. console.log("谢谢惠顾")
    5. this.removeEventListener("click",handler)
    6. }
    7. btn.addEventListener("click",handler)
    8. script>

    思路:点击事件打印“谢谢惠顾”以后再解绑

     

     

  • 相关阅读:
    做副业的一些想法
    【计算机网络】HTTP/HTTPS协议基础知识汇总
    基于geojson-vt和canvas的高性能出图
    【TensorFlow2 之014】在 TF 2.0 中实现 LeNet-5
    Docker学习——⑥
    预计销售额超20亿 长城汽车新能源购车节收获4万订单
    WebSocket 和 Socket 的区别
    计算机图形学环境配置java3D
    北京映急物流有限公司 面试.net软件工程师岗位
    SpringBoot中的application.properties等一系列的配置文件
  • 原文地址:https://blog.csdn.net/a1598452168YY/article/details/127429202