zoukankan      html  css  js  c++  java
  • js事件绑定

    1. 事件:所谓事件,就是用户在窗口上对各种组件的操作

    例如:

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>Document</title>
     6     <script>
     7     window.onload=function(){
     8         var Obtn=document.querySelector("#btn");
     9                 Obtn.onclick=function(){
    10                     alert('点击事件发生了');
    11                 };
    12     }
    13     </script>
    14 </head>
    15 <body>
    16     <div class="box">
    17         <input type="button" id="btn" value="点我">
    18     </div>
    19 </body>
    20 </html>

    运行结果:

    2. 事件绑定:就是当某个对象的事件发生时(或者操作某个组件时),由此而关联产生的现象或者方法。简单的说,就是为某个对象的某个事件绑定相关的事件处理程序

    例如:

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>Document</title>
     6     <script>
     7     window.onload=function(){
     8         var Obtn=document.querySelector("#btn");
     9                 Obtn.onclick=function(){
    10                     alert('我是onclick事件关联绑定的alert事件方法');
    11                 };
    12     }
    13     </script>
    14 </head>
    15 <body>
    16     <div class="box">
    17         <input type="button" id="btn" value="点我">
    18     </div>
    19 </body>
    20 </html>

    运行结果:

     

    3.事件绑定的方法:

    3.1 在DOM元素中之间绑定,即行间事件

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>Document</title>
     6     <script>
     7     function aluoha(){
     8         alert('good job,huanying2015!');
     9     }
    10     </script>
    11 </head>
    12 <body>
    13     <div class="box">
    14         <input type="button" id="btn" value="点我" onclick="aluoha();">
    15     </div>
    16 </body>
    17 </html>

    运行结果:

    3.2 在JavaScript代码中绑定事件

    此种绑定事件的方法,可以是JavaScript代码和HTML标签分离,文档及结构清晰,便于开发和管理,这是一种分块的思维方法

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>Document</title>
     6     <script>
     7     window.onload=function(){
     8         var Obtn = document.querySelector('#btn');
     9         Obtn.onclick=function(){
    10              alert('good job,huanying2015!');
    11         }
    12     }
    13     </script>
    14 </head>
    15 <body>
    16     <div class="box">
    17         <input type="button" id="btn" value="点我" >
    18     </div>
    19 </body>
    20 </html>

    运行结果:

    3.3 使用事件监听来绑定事件

     使用addEventListener(非ie浏览器)或者 attachEvent(ie浏览器) 来绑定监听函数:

    非IE浏览器监听事件:

    语法格式:element.addEventListener(event,function,useCapture) ;

    element:监听对象;

    addEventListener:事件监听函数

    event:事件

    function:触发事件时,执行的函数

    useCapture:可选,定义了function 在触发阶段执行还是冒泡阶段执行。值为true, 在触发阶段执行,值为false,在冒泡阶段执行,默认为false;

    (备注:经过测试,发现ie9,ie10,ie11也支持addEventListener;ie8及以下就不支持了)

    补充说明:事件监听分为三个阶段进行:捕获阶段--->目标阶段--->冒泡阶段,可以用以下的关系图来理解:

    代码:

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>Document</title>
     6     <script>
     7     window.onload=function(){
     8         var Obtn = document.querySelector('#btn');
     9        Obtn.addEventListener('click',function(){
    10            alert("本次使用了addEventListener 来监听绑定alert函数");
    11        },false);
    12     }
    13     </script>
    14 </head>
    15 <body>
    16     <div class="box">
    17         <input type="button" id="btn" value="点我" >
    18     </div>
    19 </body>
    20 </html>

    运行结果:

     

    IE浏览器的监听事件:

    语法格式:element.attachEvent(event,function)

    element:监听对象

    attachEvent:事件监听函数

    event:事件(备注:ie浏览器的事件,需要在事件前加上on 。例如click,IE监听事件需要加上on ,变成 onclick)

    function:触发事件时,执行的函数

    (注意:IE有点坑,IE11不支持这种写法,反而支持addEventListener 的写法)

    代码:

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>Document</title>
     6     <script>
     7     window.onload=function(){
     8         // var Obtn = document.querySelector('#btn');  // 因为IE8以下不支持document.querySelector()获取元素
     9         var Obtn = document.getElementById('btn');
    10         console.log(Obtn);
    11         Obtn.attachEvent('onclick',hello123);
    12 
    13         function hello123(){
    14             alert("本次使用了attachEvent 来监听绑定alert函数");
    15         };  
    16     }
    17     </script>
    18 </head>
    19 <body>
    20     <div class="box">
    21         <input type="button" id="btn" value="点我" >
    22     </div>
    23 </body>
    24 </html>

    运行结果:

    http://www.cnblogs.com/huanying2015 博客随笔大多数文章均属原创,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利
  • 相关阅读:
    c中static的作用
    数据分析人士必看的10个中文博客
    使用cat命令和EOF标识输出多行文件
    linux 查看系统信息命令(比较全)
    ORACLE 使用LEADING, USE_NL, ROWNUM调优
    Oracle Hint(提示)和INDEX(索引)的一些忠告
    Linux操作系统中巧用CD和Pushd切换目录
    索引失效的一些原因
    .NET使用一般处理程序生成验证码
    上传图片到指定文件目录,没有则创建目录
  • 原文地址:https://www.cnblogs.com/huanying2015/p/7887105.html
Copyright © 2011-2022 走看看