开发者学堂课程【jQuery 开发教程:jQuery_鼠标事件】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/362/detail/4284
jQuery_鼠标事件
内容介绍:
一、概要
二、讲解事件
一、概要
1、 .click():点击事件
2、 .dblclick():双击事件
3、 .hover():鼠标悬停和离开
4、 .mousedown():鼠标按下
5、 .mouseenter():鼠标进入元素
6、 .mouseleave():鼠标离开元素
7、 .mousemove():鼠标在元素内移动
8、 .mouseout():鼠标离开元素(支持事件冒泡)
9、 .mouseover():鼠标进入元素内(支持事件冒泡)
10、 .mouseup():鼠标按键被释放
二、讲解事件
1、.click()
创建一个新的工程,创建一个新的 HTML 文件,命名为 click 。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
// 要使用 jQuery 需要先引用,需要将 jQuery 复制粘贴到工程中,然后将其引入。
<script src="jquery-2.2.1.min.js"></script>
</head>
<body>
<p>haha 1</p>
<p>haha 2</p>
<p>haha 3</p>
<p>haha 4</p>
// 现在要先采用原生的js来实现一个效果,就是点击p标签,让它弹出当前p标签里的内容。
<script>
// 先注释
// 声明一个变量p,此时返回的是一个数组
// var p=document.getElementsByName("p");
// 然后给每个p标签都添加一个点击事件,这个时候就需要采用for循环
// for(var i=0;i<p.length;i++){
// 因为p是一个数组,所以说我们这里给每一个数组里的元素都添加一个click事件,在js里是onclick。
// p[i].onclick=function(){
// alert弹出当前点击对象的this,用this指针,这时候它指向的是当前选中的对象元素。
// alert(this.innerHTML);
// }
// }
// 那么如果此时我们想让jQuery来实现这个效果,应当如何来写呢?
// 书写 jQuery
$(function(){
// 直接引用 click ,就不需要 for 循环了。
$("p").click(function(){
// 此时 this 指向的是调用者 p ,html()相当于 innerHTML 。
alert($(this).html());
})
})
</script>
</body>
</html>
使用 jQuery 比使用 css 实现的效果简单很多。
点击元素将会触发。
效果截图:
单击文字将弹出窗口。
2、dblclick()
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="jquery-2.2.1.min.js"></script>
</head>
<body>
<p>haha 1</p>
<p>haha 2</p>
<p>haha 3</p>
<p>haha 4</p>
<script>
$(function(){
$("p").dblclick(function(){
alert($(this).html());
})
})
</script>
</body>
</html>
单击不行,需要快速双击元素才能触发。
效果截图:
3、hover()
.hover() 相当于 css 中的 hover ,把鼠标悬停在一个元素上会出现一个效果
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="jquery-2.2.1.min.js"></script>
<style>
// 为了方便观察给 p 标签一个样式
p{
width:300px;
beckground-color:aquamarine;
}
</style>
</head>
<body>
<p>haha 1</p>
<p>haha 2</p>
<p>haha 3</p>
<p>haha 4</p>
<script>
$(function(){
$("p").hover(function(){
alert($(this).html());
})
})
</script>
</body>
</html>
把鼠标悬停在元素上时,会自动触发。
效果截图:
鼠标悬停在 haha 1 上弹出窗口。
4、mousedown()
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="jquery-2.2.1.min.js"></script>
<style>
p{
width:300px;
beckground-color:aquamarine;
}
</style>
</head>
<body>
<p>haha 1</p>
<p>haha 2</p>
<p>haha 3</p>
<p>haha 4</p>
<script>
$(function(){
$("p").mousedown(function(){
alert($(this).html());
})
})
</script>
</body>
</html>
鼠标在元素上按下时会触发。
效果截图:
鼠标在 haha 3 上按下会触发弹出窗口。
5、mouseenter()
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="jquery-2.2.1.min.js"></script>
<style>
p{
width:300px;
beckground-color:aquamarine;
}
</style>
</head>
<body>
<p>haha 1</p>
<p>haha 2</p>
<p>haha 3</p>
<p>haha 4</p>
<script>
$(function(){
$("p").mouseenter(function(){
alert($(this).html());
})
})
当鼠标移动到元素上时就会被触发。
效果截图:
6、mouseleave()
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="jquery-2.2.1.min.js"></script>
<style>
p{
width:300px;
beckground-color:aquamarine;
}
</style>
</head>
<body>
<p>haha 1</p>
<p>haha 2</p>
<p>haha 3</p>
<p>haha 4</p>
<script>
$(function(){
$("p").mouseleave(function(){
alert($(this).html());
})
})
鼠标离开元素时才会被触发,与进入是一对。
效果截图
7、mousemove()
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="jquery-2.2.1.min.js"></script>
<style>
p{
width:300px;
beckground-color:aquamarine;
}
</style>
</head>
<body>
<p>haha 1</p>
<p>haha 2</p>
<p>haha 3</p>
<p>haha 4</p>
<script>
$(function(){
var i=0;
$("p").mousemove(function(){
console.log(i++);
})
})
鼠标在元素内移动时会触发。
效果截图:
打开后台 console ,然后在4这里移动,可以看到这边它是不断的在增加的,就是说事件在触发,这就是.mousemove() 。
8、.mouseout() .mouseover()
*冒泡事件:事件按照从规定事件目标到最不特定的事件目标的顺序触发,从事件目标开始往上冒泡,直到页面的最上一级标签。
*捕获事件:与冒泡事件相反,从最上一级标签开始往下查找,直到捕获到目标事件。
9、mouseup()
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="jquery-2.2.1.min.js"></script>
<style>
p{
width:300px;
beckground-color:aquamarine;
}
</style>
</head>
<body>
<p>haha 1</p>
<p>haha 2</p>
<p>haha 3</p>
<p>haha 4</p>
<script>
$(function(){
$("p").mouseup(function(){
alert($(this).html());
})
})
按键被释放才会触发,按下弹起的瞬间才会触发。
效果截图:
打开后台,只有在鼠标被释放时才会被触发。