深入学习jQuery鼠标事件
前面的话
鼠标事件是DOM事件中最常用的事件,jQuery对鼠标事件进行了封装和扩展。本文将详细介绍jQuery鼠标事件
类型
鼠标事件共10类,包括click、contextmenu、dblclick、mousedown、mouseup、mousemove、mouseover、mouseout、mouseenter和mouseleave
click 当用户按下并释放鼠标按键或其他方式“激活”元素时触发
contextmenu 可以取消的事件,当上下文菜单即将出现时触发。当前浏览器在鼠标右击时显示上下文菜单
dblclick 当用户双击鼠标时触发
mousedown 当用户按下鼠标按键时触发
mouseup 当用户释放鼠标按键时触发
mousemove 当用户移动鼠标时触发
mouseover 当鼠标进入元素时触发
mouseout 当鼠标离开元素时触发
mouseenter 类似mouseover,但不冒泡
mouseleave 类似mouseout,但不冒泡
写法
以上10类鼠标事件,都有对应的写法。下面以click()事件为例,来说明鼠标事件的写法
【1】click(handler(eventObject))
click()事件是bind()事件的简写形式,可以接受一个事件处理函数作为参数
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<div id="box" style="height:30px;width:200px;border:1px solid black"></div>
<script>
$('#box').click(function(){
$(this).css('background','lightblue')
})
</script>
【2】click([eventData],handler(eventObject))
click()事件可以接受两个参数,第一个参数传递数据,第二个参数是处理函数
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<div id="box" style="height:30px;width:200px;border:1px solid black"></div>
<script>
$('#box').click(123,function(event){
alert(event.data);
})
</script>
【3】click()
click()事件不带参数时,变成click()方法,是trigger('click')的简写形式
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<button id="btn1">按钮一</button>
<button id="btn2">按钮二</button>
<script>
$('#btn1').on('click',function(){
alert(1);
});
$('#btn2').on('click',function(){
$('#btn1').click();
});
</script>
合成事件
jQuery事件对鼠标事件进行了扩展,自定义了两个合成事件——hover()和toggle()
[注意]toggle()事件已经在jQuery1.8版本删除
hover()
hover(enter,leave)事件用于模拟光标悬停事件。鼠标移入时,触发第一个函数参数;鼠标移出时,触发第二个函数参数
hover()事件实际上是mouseenter事件和mouseleave事件的集合
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<div id="box" style="height:30px;width:200px;border:1px solid black"></div>
<script>
$('#box').on('mouseenter',function(event){
$(this).css('background-color','lightblue');
})
$('#box').on('mouseleave',function(event){
$(this).css('background-color','transparent');
})
</script>
用hover()事件实现如下
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<div id="box" style="height:30px;width:200px;border:1px solid black"></div>
<script>
$('#box').hover(function(){
$(this).css('background-color','lightblue');
},function(){
$(this).css('background-color','transparent');
})
</script>
当hover()事件只有一个参数时,该参数为mouseenter和mouseleave事件共同的函数
<style>
.active{background-color:lightblue;}
</style>
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<div id="box" style="height:30px;width:200px;border:1px solid black"></div>
<script>
$('#box').hover(function(){
$(this).toggleClass('active')
})
</script>
toggle()[已删除]
toggle()事件用于模拟鼠标连续单击事件。第1次单击,触发第1个函数参数;第2次单击,触发第2个函数函数;如果有更多函数,则依次触发,直到最后一个。随后的每次单击都重复对这几个函数轮番调用
鼠标按键
事件对象event的which属性用于区分哪个键被按下,敲击鼠标左键which的值是1,敲击鼠标中键which的值是2,敲击鼠标右键which的值是3
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<div id="box" style="height:30px;width:200px;border:1px solid black"></div>
<script>
$('#box').mousedown(function(event){
alert(event.which)
})
</script>
修改键
在按下鼠标时键盘上的某些键的状态可以影响到所要采取的操作,这些修改键就是Shift、Ctrl、Alt和Meta(在Windows键盘中是Windows键,在苹果机中是Cmd键),它们经常被用来修改鼠标事件的行为
jQuery参照DOM规定了4个属性,表示这些修改键的状态:shiftKey、ctrlKey、altKey和metaKey。这些属性中包含的都是布尔值,如果相应的键被按下了,则值为true;否则值为false
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<div id="box" style="height:30px;width:200px;border:1px solid black"></div>
<script>
$('#box').click(function(event){
$('#box').html();
if(event.shiftKey){$('#box').html('shiftKey;') }
if(event.ctrlKey){$('#box').html('ctrlKey;') }
if(event.altKey){$('#box').html('altKey;') }
if(event.metaKey){$('#box').html('metaKey;') }
})
</script>
坐标位置
关于坐标位置,DOM事件对象提供了clientX/Y、pageX/Y、screenX/Y、x/y、offsetX/Y、layerX/Y这6对信息,但各浏览器实现情况差异很大
jQuery关于坐标位置,提供了clientX/Y、offsetX/Y、screenX/Y、pageX/Y这四对信息
clientX/Y
clientX/Y表示鼠标指针在可视区域中的水平和垂直坐标
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<div id="box" style="height:30px;width:200px;border:1px solid black"></div>
<script>
$('#box').mousemove(function(event){
$('#box').html(function(index,oldHtml){
return 'clientX:' + event.clientX +';clientY:'+event.clientY
});
})
</script>
offsetX/Y
offsetX/Y表示相对于定位父级的水平和垂直坐标
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<div id="box" style="height:30px;width:400px;border:1px solid black"></div>
<script>
$('#box').mousemove(function(event){
$('#box').html(function(index,oldHtml){
return 'clientX:' + event.clientX +';clientY:'+event.clientY + 'offsetX:' + event.offsetX +';offsetY:'+event.offsetY
});
})
</script>
screenX/Y
screenX/Y表示鼠标指针相对于屏幕的水平和垂直坐标
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<div id="box" style="height:30px;width:400px;border:1px solid black"></div>
<script>
$('#box').mousemove(function(event){
$('#box').html(function(index,oldHtml){
return 'clientX:' + event.clientX +';clientY:'+event.clientY + 'screenX:' + event.screenX +';screenY:'+event.screenY
});
})
</script>
pageX/Y
pageX/Y表示相对于页面的水平和垂直坐标,它与clientX/clientY的区别是不随滚动条的位置变化
<body style="height:2000px;">
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<div id="box" style="height:100px;width:300px;background:pink;"></div>
<div id="result"></div>
<script>
$('#box').mousemove(function(event){
$('#result').html(function(index,oldHtml){
return 'clientX:' + event.clientX +';clientY:'+event.clientY + 'pageX:' + event.pageX +';pageY:'+event.pageY
});
})
</script>
</body>
深入学习jQuery鼠标事件的更多相关文章
- 从零开始学习jQuery (五) 事件与事件对象
本系列文章导航 从零开始学习jQuery (五) 事件与事件对象 一.摘要 事件是脚本编程的灵魂. 所以本章内容也是jQuery学习的重点. 本文将对jQuery中的事件处理以及事件对象进行详细的讲解 ...
- JQuery 鼠标事件简介
mouseover事件于用户把鼠标从一个元素移动到另外一个元素上时触发,mouseout事件于用户把鼠标移出一个元素时触发. 下面为你详细介绍下jquery中的鼠标事件: (1):click事件:cl ...
- 学习jQuery的事件dblclick
Insus.NET一直以来都是asp.net的开发的,少使用javascript.现在学习asp.net mvc了,jQuery是一个必须掌握的客户端语言. 不用急,慢慢来.一步一步.这篇练习jQue ...
- jQuery鼠标事件
鼠标事件是在用户移动鼠标光标或者使用任意鼠标键点击时触发的. (1):click事件:click事件于用户在元素敲击鼠标左键,并在相同元素上松开左键时触发. $('p').click ...
- jquery 鼠标事件汇总
鼠标事件是指用户在移动鼠标光标或者点击任意鼠标键时触发的事件,jQuery中封装了基本上所有的鼠标事件包括点击,双击,移动等鼠标事件,下面我们就来看下这些事件的语法和用法 鼠标事件是在用户移动鼠标 ...
- 2017年10月21日 CSS常用样式&鼠标样式 以及 jQuery鼠标事件& jQuery图片轮播& jQuery图片自动轮播代码
css代码 背景与前景 background-color:#0000; //背景色,样式表优先级高 background-image:url(路径); //设置背景图片 background-atta ...
- jQuery鼠标事件汇总
鼠标事件是在用户移动鼠标光标或者使用任意鼠标键点击时触发的. 1.click事件:点击鼠标左键时触发 $('p').click(function(){}); 示例: $('p').click(func ...
- python学习之鼠标事件&键盘事件
driver.maximize_window() 浏览器最大化 ActionChains类与输入事件 1:from selenium.webdriver.common.action_chains ...
- 初步学习jQuery之事件
事件 页面加载 在DOM中提供了load事件用于页面加载完毕之后执行机制,jQuery提供了ready()方法实现相似的功能,但是存在以下的区别.1.DOM中的load事件没有任何的简写形式,但是在j ...
随机推荐
- JavaScript 中string方法
注意:JavaScript的字符串是不可变的(immutable),String类定义的方法不能改变原来字符串内容,例如String.toUpperCase()这样的方法,返回的是全新的字符串,而不是 ...
- S3C2440UART之FIFO
一.基础知识 S3C2440有3个独立的串口,每一个都可以利用DMA和中断方式操作.每个包含2个64字节FIFO,一个收,一个发.非FIFO模式相当于FIFO模式的一个寄存器缓冲模式.每一个UART有 ...
- ajax的一些笔试面试题
1. 什么是ajax,为什么要使用Ajax(请谈一下你对Ajax的认识) 什么是ajax: AJAX是“Asynchronous JavaScript and XML”的缩写.他是指一种创建交互式网页 ...
- html5地理位置定位功能小析
Geolocationd 基本原理1.GPS GPS基本原理是测量出已知位置的卫星到用户接收机之间的距离,然后综合多颗卫星的数据就可知道接收机的具体位置.适用于具备GPS功能的设备(1)优点:在 ...
- MLlib决策树与集成树
决策树是一种常见的分类与回归机器学习算法,由于其模型表达性好,便于理解,并能取得较好的效果,而受到广泛的应用.下图是一个简单的决策树,决策树每个非叶子节点包含一个条件,对于具有连续值的特征,该条件为一 ...
- Python之路Day15--CSS补充以及JavaScript(一)
一.上节作业问题: 上节作业问题: 1.css重用 <style> 如果整个页面的宽度 > 900px时: { .c{ 共有 } .c1{ 独有 } } .c2{ 独有 } < ...
- mui框架中底部导航的跳转2
接上一篇 还有一种方法就是在一心得页面中打开我们所需要的网页 代码如下: 向新的的页面穿值: 获取到新页面上的值:
- 浏览器调试js技巧总结
一.控制台console的运用 console.log(aa|'aa'): 将需要打印的东西输出的控制台,在调试的时候很有用,可以知道aa是否是自己想要的数据类型,或者可以知道程序是否执行到了这一步, ...
- 第三方框架之ThinkAndroid 学习总结(一)
ThinkAndroid是一个免费的开源的.简易的.遵循Apache2开源协议发布的Android开发框架,其开发宗旨是简单.快速的进行Android应用程序的开发,包含Android mvc.简易s ...
- C# WinForm 导出导入Excel/Doc 完整实例教程[使用Aspose.Cells.dll]
[csharp] view plain copy 1.添加引用: Aspose.Cells.dll(我们就叫工具包吧,可以从网上下载.关于它的操作我在“Aspose.Cells操作说明 中文版 下载 ...