zoukankan      html  css  js  c++  java
  • Java Script 之 addEventListener

     addEventListener  ,字面上理解就是,给事件添加一个监听器,为什么这样做?就是想让这个事件发生时,我们能及时的知道,同时伴随着干一些其他的事。


    先给个题目:我们再屏幕上给出一个按钮, 我们希望当用户移动鼠标,光标碰到按钮时,屏幕上自动显示,"鼠标经过!",鼠标点击,屏幕接着显示"鼠标点击!",光标离开时,屏幕上接着"鼠标离开!"。

    仔细一想,这就是 事件监听器 (EventListener) 最佳发挥的地方。

    直接给出代码:

    
    

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>菜鸟教程(runoob.com)</title>
    </head>
    <body>

    
    

    <p>该实例使用 addEventListener() 方法在按钮中添加多个事件。</p>
    <button id="myBtn">点我</button>
    <p id="demo"></p>
    <script>
    var x = document.getElementById("myBtn");
    x.addEventListener("mouseover", myFunction);
    x.addEventListener("click", mySecondFunction);
    x.addEventListener("mouseout", myThirdFunction);
    function myFunction()
    {
    document.getElementById("demo").innerHTML += "鼠标经过!<br>"
    }
    function mySecondFunction()
    {
    document.getElementById("demo").innerHTML += "点击!<br>"
    }
    function myThirdFunction()
    {
    document.getElementById("demo").innerHTML += "鼠标离开!<br>"
    }
    </script>

    
    

    </body>
    </html>

    
    

    点击这里运行!

    分析:

     基本语法是:

    element.addEventListener(eventfunctionuseCapture)

     event: 事件,例如上面的 mouseout  就是鼠标移出,这是需要记住的.

    function: 触发函数,就是这个事件发生后,我们做出什么响应。 (上面的响应是,在一个p标签中 不断添加提示语)

    ***************************************************************************************************************************************************

    现在根据廖雪峰老师的js课程,提供一个添加图片文件并且预览的程序实例:

     1 var
     2     fileInput = document.getElementById('test-image-file'),
     3     info = document.getElementById('test-file-info'),
     4     preview = document.getElementById('test-image-preview');
     5 // 监听change事件:
     6 fileInput.addEventListener('change', function () {
     7     // 清除背景图片:
     8     preview.style.backgroundImage = '';
     9     // 检查文件是否选择:
    10     if (!fileInput.value) {
    11         info.innerHTML = '没有选择文件';
    12         return;
    13     }
    14     // 获取File引用:
    15     var file = fileInput.files[0];
    16     // 获取File信息:
    17     info.innerHTML = '文件: ' + file.name + '<br>' +
    18                      '大小: ' + file.size + '<br>' +
    19                      '修改: ' + file.lastModifiedDate;
    20     if (file.type !== 'image/jpeg' && file.type !== 'image/png' && file.type !== 'image/gif') {
    21         alert('不是有效的图片文件!');
    22         return;
    23     }
    24     // 读取文件:
    25     var reader = new FileReader();
    26     reader.onload = function(e) {
    27         var
    28             data = e.target.result; // 'data:image/jpeg;base64,/9j/4AAQSk...(base64编码)...'            
    29         preview.style.backgroundImage = 'url(' + data + ')';
    30     };
    31     // 以DataURL的形式读取文件:
    32     reader.readAsDataURL(file);
    33 });
  • 相关阅读:
    redis之不重启,切换RDB备份到AOF备份
    redis之持久化RDB与AOF
    redis之哨兵集群
    redis之订阅功能
    redis之基础命令
    Liunx之MySQL安装与主从复制
    Python邮件发送脚本(Linux,Windows)通用
    redhat6.4 gcc g++ rpm方式安装步骤
    LVS+Keepalived+Mysql+主主数据库架构[2台]
    监控mysql状态脚本
  • 原文地址:https://www.cnblogs.com/3532gll/p/9549617.html
Copyright © 2011-2022 走看看