JS高级(1)

1.事件

概念:浏览器客户端上客户触发的行为都称为事件,所有的事件都是天生自带的,不需要我们去绑定,只需要我们去触发。通过obj.事件名=function(){}

事件名:onmouseover, onmouseout, onmousedown, onmousemove, onmouseup

onclick, onchange, onfocus, onblur等。

  当用户触发一个事件的时候,浏览器的所有详细信息都存在一个叫event的对象上,我们把它叫事件对象。

  所有事件在绑定方法的时候,天生自带一个参数就叫event。

鼠标的坐标:event.clientX;

     event.clientY.

event的兼容性:

在chrome下,event是undefined,在IE低版本下是null,火狐下会报错。

2.事件冒泡

什么叫事件冒泡?

  定义:当给父子元素的相同事件绑定方法时,触发了子元素身上的事件,执行完毕之后也会触发父级元素事件,这种传播机制叫事件冒泡。

  

如何取消事件冒泡:event有个属性叫cancelBubble,默认值是false,改成true就取消事件冒泡。

  event.cancelBubble=true

  

3.事件捕获

(1) 给一个元素绑定事件,普通写法是

obj.οnclick=function(){}

obj.οnclick=function(){} 这就相当于给obj的onclick属性赋值了。这种写法有一点不好,后者会将前者覆盖掉。

(2) 事件绑定的第二种写法:标准浏览器用addEventListner()这个方法,IE低版本用attachEvent()这个方法

addEventListner(参数1,参数2,参数3)

    参数1:事件名,事件名不能带on。

      参数2:事件函数;

      参数3:布尔值,代表捕获不捕获,默认是false 不捕获但是冒泡,true是捕获但不冒泡。

(3)事件捕获:<1>IE低版本没有事件捕获

        <2>普通事件绑定写法没有捕获

    定义:给父子元素用addEventListner()绑定同一个事件时,当触发子元素身上的事件,会触发父元素,然后再传递给子元素,这种传播机制叫事件捕获。

****attachEvent()和addEventListner()二者的区别:

   <1>attachEvent()只用在IE8以下,addEventListner()适合用在标准浏览器下

   <2>attachEvent()里的事件名带on,而addEventListner()事件名不带on

   <3>attachEvent()里面的this是window,addEventListner()里的this是当前元素对象(触发该事件的函数)

   <4>attachEvent()只有冒泡没有捕获,addEventListner()既有冒泡也有捕获。

4.call和apply

call和apply就是改变函数里this的指向的方法。xxx.apply()或xxx.call()

  特别强调:xxx必须是function(普通函数,类,构造函数)

  

call()中的第一个参数是null的时候,汉书里的this还是指向原来的,不变。

所有事件都是异步的。

转载于:https://www.cnblogs.com/yuanjingjing/p/10044150.html

Js高级(1) 事件11.30相关推荐

  1. JS高级:事件冒泡和事件捕获;

    1.事件:浏览器客户端上客户触发的行为成为时事件:所有的事件都是天生自带的,不需要我们去绑定,只需要我们去触发 当用户触发一个事件时,浏览器的所有详细信息都存在一个叫做event的对象上,我们把它叫做 ...

  2. js高级:面向对象+ES6

    js高级:面向对象+ES6 文章目录 js高级:面向对象+ES6 day01 一.ES6中的类和对象 1.1对象 1.2类 1.3创建类 1.4类constructor构造函数 1.5类中添加方法 1 ...

  3. 前端复习8:JS高级

    前端复习8:JS高级 1.对象 1.1 面向过程与面向对象 1.2 对象与类 2 构造函数和原型 2.1 构造函数 2.2 构造原型prototype 2.2 对象原型 2.3 constructor ...

  4. ~【笔记】黑马js高级和尚硅谷ES6笔记(部分)~

    点击通往->黑马pink讲js高级. 点击通往->尚硅谷ES6视频. 目录: js高级: 第一部分.构造函数.原型和继承 第二部分.函数进阶 一.函数的定义和调用 二.this 三.严格模 ...

  5. 前端面试题总结(js高级部分)

    七.JS 高级 1.JQuery 一个对象可以同时绑定多个事件,这是如何实现的? 2.知道什么是 webkit 么? 知道怎么用浏览器的各种工具来调试和 debug 代码么? 3.如何测试前端代码么? ...

  6. 前端知识点总结——JS高级(持续更新中)

    前端知识点总结--JS高级(持续更新中) 1.字符串 什么是: 连续存储多个字符的字符数组 相同: 1. 下标 2. .length 3. 遍历 4. 选取: slice(starti[, endi] ...

  7. 11.28 限定某个目录禁止解析php 11.29 限制user_agent 11.30/11.31 php相关配置

    - 11.28 限定某个目录禁止解析php - 11.29 限制user_agent - 11.30/11.31 php相关配置 - 扩展 - apache开启压缩 http://ask.apelea ...

  8. node.js书籍_2020年11部最佳Node Js书籍

    node.js书籍 When we talk about any programming language, it's very easy to find any video course on Ud ...

  9. JS高级+ES678

    js高级 数据类型 基本(值)类型 Number: 任意数值 String: 任意文本 Boolean: true/false undefined: undefined null: null 对象(引 ...

最新文章

  1. Java Mocking入门—使用Mockito
  2. 计算机视觉与深度学习 | 目标提取(代码实现)
  3. c++调用mysql存储过程_C++中ADO调用MySQL存储过程失败,诡异的语法异常,求解中,附源码...
  4. (转)开源 Apache 服务器安全防护技术精要及实战
  5. LiveVideoStackCon讲师热身分享 ( 三 ) —— Facebook的工具文化与多媒体QoE
  6. 新服务器打包运营级价值几千的H5商城源码
  7. 20-10-026-安装-KyLin-2.6.0-单机版安装(MAC官网下载)-spark引擎
  8. 仿回收站效果的设计与实现
  9. Linux命令(五)之service服务查找、启动/停止等相关操作
  10. 如何使用视频格式转换器将flv转换成MP4
  11. 【Idea】人工智能编程他来了,Idea集成一款和ChatGPT一样智能的编码辅助神器
  12. FA(萤火虫算法)MATLAB源码详细中文注解
  13. html和ui关系,ue和ui的区别是什么
  14. Java操作图片大全
  15. docker 存储驱动之overlay2
  16. flutter项目运行到IOS手机
  17. spinal HDL - 01 - 环境搭建与Scala编程指南
  18. Freemarker语法2
  19. Android模拟器检测体系梳理
  20. J0ker的CISSP之路: How CISSP(1)

热门文章

  1. 跨浏览器检测某个节点是不是另一个节点的后代
  2. - 动规讲解基础讲解八——正整数分组
  3. SendInput模拟键盘输入的问题 转
  4. css实现3行2列居中高度自适应布局
  5. 用户 'NT AUTHORITY\NETWORK SERVICE' 登录失败问题
  6. Flutter TabBar 标签栏背景颜色、点击水波纹颜色配置
  7. node命令错误--nodemon : 无法将“nodemon”项识别
  8. Mr.J--C语言经典编程100例
  9. 露雨资源库三(第一个.net2.0软件)-为控件增加自动完成功能
  10. leetcode 802. 找到最终的安全状态(Find Eventual Safe States)