js事件

287 阅读3分钟

js事件是什么?

js事件是指用户在某事务上由于某种行为所执行的操作; (对页面元素的某种操作) 事件是文档或者浏览器窗口中发生的,特定的交互瞬间。

1.鼠标事件:

1、click:点击

<button onclick="myClick()">鼠标单击</button> 

2、dblclick:双击

<button ondblclick="myDBClick()">鼠标双击</button> 

3、mousedown:鼠标按下

<button onmousedown="myMouseDown()" onmouseup="myMouseUp()">鼠标按下和抬起</button>

4、mouseup:鼠标抬起

<button onmousedown="myMouseDown()" onmouseup="myMouseUp()">鼠标按下和抬起</button>

5:mouseout:鼠标离开

<button onmouseover="myMouseOver()" onmouseout="myMouseOut()">鼠标悬浮和离开</button> 

7、mousemove:鼠标移动

<button onmousemove="myMouseMove()">鼠标移动</button>

8、mouseleave:鼠标离开

<button onmouseenter="myMouseEnter()" onmouseleave="myMouseLeave()">鼠标进入和离开</button> 

2. 键盘事件:

1.keydown:按下键盘任意键时触发

2.keyup:按键抬起时触发

3.keypress:按键按下抬起时触发

框架/对象事件:

1.abort:图像加载中断

2.beforeunload:改事件在即将离开页面时触发

3.error:在加载文档或图像发生错误

4.hashchange:改事件在当前url的锚部分发生修改时触发

5.pageshow:该事件在用户访问页面时触发

6.pagehide:跳转页面时触发

7.unload:退出页面时触发

3.html事件

1.load:文档加载完成

2.select:被选中的时候

3.change:内容被改变

4.focus:得到光标

5.resize:窗口尺寸变化

6.scroll:滚动条移动

代码演示:

<body onload="loaded()"> 
<div style="height: 3000px" ></div> 
<input type="text" id="name" onselect="mySelect(this.id)"> 
<input type="text" id="name2" onchange="myChange(this.id)"> 
<input type="text" id="name3" onfocus="myFocus()"> 
</body> 

JS和JQUERY的区别

JavaScript 是通过标签插入到HTML页面,可由所有的现代浏览器执行的一种轻量级的编程语言。

JQuery是一个JavaScript函数库。或者说是JavaScript。 比如:

根据ID取元素
{
JS:取到的是一个DOM对象。
  例:var div = document.getElementByID("one");
JQUERY:取到的是一个JQUERY对象。
  例:var div = $("#one");——括号里面是根据某个东西来找,相当于一个选择,如果我们要根据ID来找,在样式表里的ID是用#来表示的,所以在这里我们直接带入井号,整句的意思就是根据ID为one的来查找。
}
根据class取元素,在数组里面如果要取DOM对象使用索引的方式,如果要取JQUERY对象使用eq()

{

JS:取到的是一个数组

  例:var div = document.ElementsByClassName("test");

JQUERY:

  例:var div = $(".test");

}
根据name取元素
{
JS:返回的是一个数组
  例:var bd = document.getElementsByName(uid);
JQUERY:的方式是用 方括号,属性=一个值,不限制非要根据name来取值,JQUERY是根据属性来取元素
  例:$("[name='uid']");
}
④.根据标签名取元素
{
JS:返回的也是一个数组

  例:var div = document.getElementsByTagName("div");

JQUERY:和样式表里面给所有div加样式的方法一样,在双引号内直接写标签名

  例:$("div");

}

事件对象

什么是事件对象

某一个事件被触发时(例如点击事件),此时浏览器会记录触发时的某些信息, 例如你是在哪个位置点击的,你在点击的时候是直接鼠标左键点击的,还是鼠标左右键一起点击(骚操作)的等等 浏览器把这些所有的信息放到一个变量中存储,这个变量的数据类型是对象,所以称之为事件对象

# 事件对象常见属性和方法

event.target : 返回触发事件的对象 , 点击哪个元素, 就返回哪个元素 this.target : 返回绑定事件的对象, 哪个元素绑定了这个点击事件, 就返回哪个元素.

<body>
    <ul>
        <li>li1</li>
        <li>li2</li>
        <li>li3</li>
    </ul>
    <script>
        var ul = document.querySelector('ul');
        ul.addEventListener('click', function (e) {
            console.log(this);  // 返回的是ul
            console.log(e.target);  // 返回的是li
        })
    </script>
</body>

event.type : 获取事件类型, 比如 click

event.clientX : 获取当前鼠标在网页上的横坐标,只跟网页的可视区域有关系

event.clientY : 获取当前鼠标在网页上的横坐标,只跟网页的可视区域有关系

event.screenX : 获取当前鼠标在当前显示器上的横坐标,

event.screenY : 获取当前鼠标在当前显示器上的横坐标,

evt.button : 获取鼠标点击的哪个键

event.preventDefault() : 该方法阻止默认事件.

event.stopPropagation() : 阻止冒泡.

事件的特性

事件冒泡

冒泡型事件:事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发。

image.png

事件冒泡的代码案例

<div id="s1">s1
    <div id="s2">s2</div>
</div>
<script>
    s1.addEventListener("click",function(e){
        console.log("s1 冒泡事件");
    },false);
    s2.addEventListener("click",function(e){
        console.log("s2 冒泡事件");
    },false);
</script>

事件捕获

 当鼠标点击或者触发dom事件时(被触发dom事件的这个元素被叫作事件源),浏览器会从根节点 =>事件源(由外到内)进行事件传播。

事件捕获的代码案例

<div id="s1">s1
    <div id="s2">s2</div>
</div>
<script>
    s1.addEventListener("click",function(e){
        console.log("s1 冒泡事件");
    },false);
    s2.addEventListener("click",function(e){
        console.log("s2 冒泡事件");
    },false);
</script>

内容部分引用