zoukankan      html  css  js  c++  java
  • 学习javaScript必知必会(4)~事件、事件绑定、取消事件冒泡、事件对象


    1、常用的事件:

    onload:页面加载

    ② onblur: 失去焦点 onfocus: 获取焦点

    onclick:点击

    ④ onmouseover:鼠标经过 onmouseout:鼠标离开

    onchange:内容改变

    onsubmit:表单提交


    2、绑定事件方式:

    (1)行内绑定:

    <元素 事件="事件处理程序(函数)">
    <script>
    function 函数名(){
        console.log(this); //行内绑定的this是指向window
    }
    </script>
    

    (2)动态绑定(用于结构+样式+行为分离的页面):

    前提是进行window.load的初始化,在初始化过程中将事件绑定到元素(标签)上

    语法:对象.事件 = 事件处理程序

    <button id="btn" >按钮</button>
    
    //js文件:通过window.onload 进行初始化,在初始化的过程中将事件动态绑定到元素上
    window.onload = function (){
        document.getElementById("btn").onclick = function (){
            console.log(this);
        }
    }
    

    (3)事件监听(为一个对象绑定多个事件处理程序)

       ① ie: attachEvent(type, callback)
    
         type:事件名,例如 onclick、onsubmit、onchange等  
    
         callback:事件处理程序(函数)
    
      ② 基于w3c模式:attachEventListener(type, callback, [capture])
    
         type:事件名,(没有前缀on)例如 click、submit、change等  
    
         callback:事件处理程序(函数)
    
         capture:可选,事件模型(为true是捕捉模式,false是冒泡模式)
    
    //进行ie或w3c的判断
    function addEvent(obj, type, callback){
        if(window.attachEvent){
            obj.attachEvent('on' + type, callback);
        }else {
            obj.addEventListener(type, callback);
        }
    }
    

    3、取消事件冒泡:

    ① ie: window.event.cancelBubble = true;
    ② w3c: function(event) {//方法的第一个参数是event
            event.stopPropagation();
         }
     
    //进行ie或w3c的判断
    function stopBubble(event){
        if(window.event){
            window.event.cancelBubble = true;
        }else{
            event.stopPropagation();
        }
    }
    

    4、取消默认行为(例如:提交按钮、超链接)

    • 有些情况需要取消掉默认行为,例如资料填写不完整,将提交按钮的提交行为进行取消
    //方法一:return false取消
    <form method="get" action="#" onsubmit="return false"> //取消表单提交
    

    //方法二:ie:window.event.returnValue = false; 
    //       w3c: event.preventDefault();
    <form method="get" action="#" >
    <input type="text" name="name" id="name"/>
        <input type="submit" value="提交" id="submit"/>
    </form>
     
    <script>
        window.onload = function (){
            document.getElementById('submit').onclick = function (event) {
                if(document.getElementById('name').value===''){
                    if(window.event){
                        window.event.returnValue = false;   //ie
                    }else{
                        event.preventDefault();	       //w3c
                    }
                }
            }
        }
    </script>
    

    5、事件对象(事件发生时产生的对象,该对象包含了该事件的所有信息)

    ■ 获取事件对象:

    ① ie8 :window.event

    ② ie9、w3c: function(event){ } //函数的第一个形参

  • 相关阅读:
    整理Eclipse常用快捷键
    前端网站资源推荐
    Node.js 官方示例中的 ECMAScript 2015
    D3.js 入门系列 — 选择元素和绑定数据
    D3.js 入门系列
    PlaceHolder的两种实现方式
    Vue.js 是什么
    Webstorm官方最新版本for Mac版本 不用注册码/破坏原文件
    vue.js 学习 仅自己加强记忆
    jQuery 动画animate,显示隐藏,淡入淡出,下拉切换,过渡效果
  • 原文地址:https://www.cnblogs.com/shan333/p/15810975.html
Copyright © 2011-2022 走看看