js事件

232 阅读7分钟

js的事件类型有:

UI事件焦点事件,鼠标与滚轮事件,键盘与文本事件,复合事件变动事件,HTML5事件设备事件,触摸与手势事件。

1. UI 事件:

UI事件中UI即(User Interface,用户界面),当用户与页面桑拿的元素交互时触发。

1.UI事件中主要包括

load,unload,abort,error,select,resize,scroll事件。

1.load事件

  1. 此事件为当页面完全加载完之后(包括所有的图像、js文件、css文件等外部资源),就会触发window上面的load事件。
  2.   这个事件是JavaScript中最常用的事件,比如我们经常会使用的window.onload=function(){};这种形式,即当页面完全加载完之后执行其中的函数。

2.unload事件

  1. 显然,这个事件是与load事件相对的。在文档被完全卸载后触发。用户从一个页面切换到另一个页面就会触发unload时间。利用这个事件最多的情况是清楚引用,避免内存泄漏。
  2.    这个事件同样有两种方式来指定。一种是JavaScript方式,使用EventUtil.addHandler();另一种就是在body元素中添加一个特性。
  3.   值得注意的是,一定要小心编写onload事件中的代码,因为它是在页面卸载后才触发,所以说页面加载后存在的那些对象,在onload触发之后就不一定存在了!

3.resize事件

  1.    当调整浏览器的窗口到一个新的宽度或高度时,就会触发resize事件。这个事件在window(窗口)上面触发。因此同样可以通过JS或者body元素中的onresize特性来指定处理程序。 

4.scroll事件

  1.   这个事件会在文档被滚动期间重复被触发,所以应当尽量保持事件处理程序的代码简单。

第二部分:焦点事件

1. 焦点事件会在页面元素获得或失去焦点时触发。主要有下面几种:

  1. blur在元素失去焦点时触发。这个事件不冒泡,所有浏览器都支持。
  2. focus 在元素获得焦点时触发。这个事件不冒泡,所有浏览器都支持。
  3. focusin 在元素获得焦点时触发。这个事件冒泡,某些浏览器不支持。
  4. focusout 在元素失去焦点时触发。这个事件冒泡,某些浏览器不支持。   注意:即使blur和focus不冒泡,也可以在捕获阶段侦听到他们。

第三部分:鼠标与滚轮事件

1. 鼠标事件是Web开发中最常用的一类事件,因为鼠标是最主要的定位设备。

  • click---用户单击鼠标左键或按下回车键触发
  • dbclick---用户双击鼠标左键触发。
  • mousedown---在用户按下了任意鼠标按钮时触发。
  • mouseenter---在鼠标光标从元素外部首次移动到元素范围内时触发。此事件不冒泡。
  • mouseleave---元素上方的光标移动到元素范围之外时触发。不冒泡。
  • mousemove---光标在元素的内部不断的移动时触发。
  • mouseover---鼠标指针位于一个元素外部,然后用户将首次移动到另一个元素边界之内时触发。
  • mouseout---用户将光标从一个元素上方移动到另一个元素时触发。
  • mouseup---在用户释放鼠标按钮时触发。

第四部分:键盘和文本事件

  该部分主要有下面几种事件:

  • keydown:当用户按下键盘上的任意键时触发。按住不放,会重复触发。
  • keypress:当用户按下键盘上的字符键时触发。按住不放,会重复触发。
  • keyup:当用户释放键盘上的键时触发。
  • textInput:这是唯一的文本事件,用意是将文本显示给用户之前更容易拦截文本。
  • 这四个事件在用户通过文本框输入文本时才最常用到。

js和jquery的区别

一、入口函数的不同

  1. js:window.onload = function(){内部放js}   
  •   实质就是一个事件,拥有事件的三要素,事件源,事件,事件处理程序。等到所有内容,以及我们的外部图片之类的文件加载完了之后,才会去执行。只能写一个入口函数;
  1. jQuery:(function())或者(function(){})或者(document).ready(function(){})是在 html所有标签都加载之后,就回去执行,可以写多个;

二、获取元素的方式不同

  1. js:常用的以下几个,除了id,其他的结果都是伪数组;
  2. jQuery:$(" ")通过和css雷同的选择器方式来获取元素。得到的是jquery对象(dom元素的数组,外加其他一些成员)。即使写的是id,唯一的,得到的对象都不是单一的;   本质上jquery方式和qs方式都是获取DOM数组, 只不过jquery会多一些其他成员,DOM数组的每一个成员注册事件不能像jquery一样直接注册, 必须分别给每个元素注册;

三、DOM对象和jquery对象的相互转换

  1. jQuery对象转换成DOM对象,方式一:(“#btn”)[0],方式二:(“#btn”).get(0)得到dom对象;
  2. eq(0)得到jquery对象DOM对象转换成jQuery对象:(document)>DOM对象转成了jQuery对象varbtn=document.getElementById(btn);btn>(document) -> 把DOM对象转成了jQuery对象var btn = document.getElementById(“btn”); btn -> (btn);$(this)   Jquery得到的元素类型都是对象,内容是伪数组,无论是不是唯一的元素;

四、事件处理程序不同

  1. js:
document.getElementById(“id”).onclick = function(){ // 语句 } 

document.getElementById(“id”).addEventListener("click",function(){})

  onclick,onfoucs,onblur,fouce(自动获得),select(自动选择文本域内容),onmouseover,onmouseout,
  
  oninput/onpropertychange用户输入事件,onchange(下拉菜单select内容发生改变时发生事件,如果内容为几,那么做出什么反应),
  1. jquery:$(“#id”).click(function(){     // 语句   });

Javascript常用对象的属性和方法

  • javascript为我们提供了一些非常有用的常用内部对象和方法。用户不需要用脚本来实现这些功能。这正是基于对象编程的真正目的。
  • 在javascript提供了string(字符串)、math(数值计算)和Date(日期)三种对象和其它一些相关的方法。从而为编程人员快速开发强大的脚本程序提供了非常有利的条件。

1. 常用内部对象

  在javascript中对于对象属性与方法的引用,有两种情况:其一是说该对象是静态对象,即在引用该对象的属性或方法时不需要为它创建实例;而另一种对象则在引用它的对象或方法是必须为它创建一个实例,即该对象是动态对象。

  •   对javascript内部对象的引用,以是紧紧围绕着它的属性与方法进行的。因而明确对象的静动性对于掌握和理解javascript内部对象是具有非常重要的意义。
  1. 串对象
  •   string对象:内部静态性。
  •    访问properties和methods时,可使用(.)运算符实现。
  •   基本使用格式:objectName.prop/methods
  1. 串对象的属性
  •   该对象只有一个属性,即length。它表明了字符串中的字符个数,包括所有符号。 例:
mytest="This is a javascript"
mystringlength=mytest.length
  • 最后mystringlength返回mytest字串的长度为20。
  1. 串对象的方法
  •   string对象的方法共有19个。主要用于有关字符串在Web页面中的显示、字体大小、字体颜色、字符的搜索以及字符的大小写转换。 其主要方法如下:
  •   锚点anchor():该方法创建如用Html文档中一样的anchor标记。使用anchor如用Html中(A Name="")一样。通过下列格式访问:string.anchor(anchorName)。
  •    有关字符显示的控制方法 big字体显示, Italics()斜体字显示,bold()粗体字显示,blink()字符闪烁显示,small()字符用小体字显示,fixed()固定高亮字显示、fontsize(size)控制字体大小等。
  •    字体颜色方法;fontcolor(color)
  •   字符串大小写转换toLowerCase()-小写转换,toUpperCase()大写转换。下列把一个给定的串分别转换成大写和小写格式:
string=stringValue.toUpperCase
string=stringValue.toLowerCase
  •   字符搜索:indexOf[charactor,fromIndex]从指定formIndex位置开始搜索charactor第一次出现的位置。
  • 返回字串的一部分字串:substring(start,end)从start开始到end的字符全部返回。  

2算术函数的math对象

 功能:提供除加、减、乘、除以外的一引些自述运算。如对数,平方根等 。

  •  静动性:静态对象

1主要属性

  math中提供了6个属性,它们是数学中经常用到的常数E、以10为底的自然对数LN10、以2为底的自然对数LN2、3.14159的PI、1/2的平方根SQRT1-2,2的平方根为SQRT2。

2主要方法

  •  绝对值:abs()
  •  正弦余弦值:sin(),cos()
  •  反正弦反余弦 :asin(), acos()
  •  正切反正切:tan(),atan()
  •  四舍五入:round()
  •  平方根:sqrt()
  •  基于几方次的值:Pow(base,exponent)