jQuery鼠标事件
-
click() 鼠标单击事件 // js onclick
click单击事件
$(".box").click(function () {
alert(“这是一个click单击事件被触发了”)
}); -
dblclick() 鼠标双击事件 // js ondblclick
dblclick鼠标双击事件
$(".box").dblclick(function () {
(“这是一个dblclick鼠标双击事件被触发了”)
}); -
mousedown() 当鼠标指针移动到元素上方,并按下鼠标按键时,会发生mousedown事件
mousedown 鼠标移动到某个元素上被按下的时候触发的事件
$(".box").mousedown(function () {
alert(“这是一个mousedown鼠标被按下的时候触发”);
}); -
mouseup() 当在元素上放松鼠标按钮时,会发生 mouseup 事件。
mouseup当在元素上放松鼠标按钮时
$(".box").mouseup(function () {
alert(“这是一个mouseup当在元素上放松鼠标按钮时触发的事件”);
}); -
mouseenter() 当鼠标指针穿过元素时,会发生mouseenter事件。该事件大多数时候会与mouseleave 事件一起使用。
mouseenter事件
$(".box").mouseenter(function () {
console.log(“mouseenter”);
}); -
mouseleave() 当鼠标指针离开元素时,会发生 mouseleave 事件。该事件大多数时候会与mouseenter 事件一起使用
mouseleave事件
$(".box").mouseleave(function () {
console.log(“mouseleave”);
});
7.mouseover() 当鼠标指针位于元素上方时,会发生 mouseover 事件。该事件大多数时候会与 mouseout 事件一起使用
mouseover事件
$(".box").mouseover(function () {
console.log(“mouseover”);
});
8.mouseout() 当鼠标指针从元素上移开时,发生 mouseout 事件。该事件大多数时候会与 mouseover 事件一起使用
mouseout
$(".box").mouseout(function () {
console.log(“mouseout”);
});
9. mousemove() 当鼠标指针在指定的元素中移动时,就会发生 mousemove 事件。
mousemove事件处理函数会被传递一个变量——事件对象,其.clientX 和 .clientY 属性代表鼠标的坐标
注意!!!
mouseover与mouseenter的区别:
mouseover如果鼠标指针穿过选定元素的任何子元素,都会触发mouseover事件,
mouseenter如果鼠标指针穿过选定元素的任何子元素不会触发mouseenter事件
mouseout与mouseleave的区别:
mouseout不论鼠标指针离开被选元素还是任何子元素,都会触发mouseout事件。
mouseleave只有在鼠标指针离开被选元素时,才会触发 mouseleave 事件
简而言之:就是移动到选定元素的子元素上面是否触发事件
mouseover 子元素 触发
mouseenter 子元素 不触发
mouseout 子元素 触发
mouseleave 子元素 不触发
jQuery表单事件
-
focus() 事件
当元素获得焦点时,触发focus事件。可以通过鼠标点击或者键盘上的TAB导航触发。这将触发所有绑定的focus函数
例如:$(".wrap input").focus(function () {
console.log(“input已经获取到了焦点”);
}); -
blur() 事件
当元素失去焦点时触发 blur 事件。
这个函数会调用执行绑定到blur事件的所有函数,包括浏览器的默认行为。可以通过返回false来防止触发浏览器的默认行为。blur事件会在元素失去焦点的时候触发,既可以是鼠标行为,也可以是按tab键离开的
例如:$(".wrap input").blur(function () {
console.log(“input已经失去了焦点”);
}); -
focusin() 事件
当元素获得焦点时,触发 focusin 事件。
focusin事件跟focus事件区别在于,他可以在父元素上检测子元素获取焦点的情况。
例如:$(".wrap").focusin(function () {
$(this).addClass(“bgPink”);
}); -
focusout() 事件
当元素失去焦点时触发 focusout 事件。
focusout事件跟blur事件区别在于,他可以在父元素上检测子元素失去焦点的情况
例如:$(".wrap").focusout(function () {
$(this).removeClass(“bgPink”);
});
5.事件对象:Query事件对象的属性和方法
事件对象的属于与方法有很多,但是我们经常用的只有那么几个,这里我主要说下作用与区别
event.type:获取事件的类型
触发元素的事件类型
(
"
a
"
)
.
c
l
i
c
k
(
f
u
n
c
t
i
o
n
(
e
v
e
n
t
)
a
l
e
r
t
(
e
v
e
n
t
.
t
y
p
e
)
;
/
/
"
c
l
i
c
k
"
事
件
)
;
e
v
e
n
t
.
p
a
g
e
X
和
e
v
e
n
t
.
p
a
g
e
Y
:
获
取
鼠
标
当
前
相
对
于
页
面
的
坐
标
通
过
这
2
个
属
性
,
可
以
确
定
元
素
在
当
前
页
面
的
坐
标
值
,
鼠
标
相
对
于
文
档
的
左
边
缘
的
位
置
(
左
边
)
与
(
顶
边
)
的
距
离
,
简
单
来
说
是
从
页
面
左
上
角
开
始
,
即
是
以
页
面
为
参
考
点
,
不
随
滑
动
条
移
动
而
变
化
e
v
e
n
t
.
p
r
e
v
e
n
t
D
e
f
a
u
l
t
(
)
方
法
:
阻
止
默
认
行
为
这
个
用
的
特
别
多
,
在
执
行
这
个
方
法
后
,
如
果
点
击
一
个
链
接
(
a
标
签
)
,
浏
览
器
不
会
跳
转
到
新
的
U
R
L
去
了
。
我
们
可
以
用
e
v
e
n
t
.
i
s
D
e
f
a
u
l
t
P
r
e
v
e
n
t
e
d
(
)
来
确
定
这
个
方
法
是
否
(
在
那
个
事
件
对
象
上
)
被
调
用
过
了
e
v
e
n
t
.
s
t
o
p
P
r
o
p
a
g
a
t
i
o
n
(
)
方
法
:
阻
止
事
件
冒
泡
事
件
是
可
以
冒
泡
的
,
为
防
止
事
件
冒
泡
到
D
O
M
树
上
,
也
就
是
不
触
发
的
任
何
前
辈
元
素
上
的
事
件
处
理
函
数
e
v
e
n
t
.
w
h
i
c
h
:
获
取
在
鼠
标
单
击
时
,
单
击
的
是
鼠
标
的
哪
个
键
e
v
e
n
t
.
w
h
i
c
h
将
e
v
e
n
t
.
k
e
y
C
o
d
e
和
e
v
e
n
t
.
c
h
a
r
C
o
d
e
标
准
化
了
。
e
v
e
n
t
.
w
h
i
c
h
也
将
正
常
化
的
按
钮
按
下
(
m
o
u
s
e
d
o
w
n
和
m
o
u
s
e
u
p
e
v
e
n
t
s
)
,
左
键
报
告
1
,
中
间
键
报
告
2
,
右
键
报
告
3
e
v
e
n
t
.
c
u
r
r
e
n
t
T
a
r
g
e
t
:
在
事
件
冒
泡
过
程
中
的
当
前
D
O
M
元
素
冒
泡
前
的
当
前
触
发
事
件
的
D
O
M
对
象
,
等
同
于
t
h
i
s
.
t
h
i
s
和
e
v
e
n
t
.
t
a
r
g
e
t
的
区
别
:
j
s
中
事
件
是
会
冒
泡
的
,
所
以
t
h
i
s
是
可
以
变
化
的
,
但
e
v
e
n
t
.
t
a
r
g
e
t
不
会
变
化
,
它
永
远
是
直
接
接
受
事
件
的
目
标
D
O
M
元
素
;
.
t
h
i
s
和
e
v
e
n
t
.
t
a
r
g
e
t
都
是
d
o
m
对
象
如
果
要
使
用
j
q
u
e
y
中
的
方
法
可
以
将
他
们
转
换
为
j
q
u
e
r
y
对
象
。
比
如
t
h
i
s
和
("a").click(function(event) { alert(event.type); // "click"事件 }); event.pageX 和 event.pageY:获取鼠标当前相对于页面的坐标 通过这2个属性,可以确定元素在当前页面的坐标值,鼠标相对于文档的左边缘的位置(左边)与 (顶边)的距离,简单来说是从页面左上角开始,即是以页面为参考点,不随滑动条移动而变化 event.preventDefault() 方法:阻止默认行为 这个用的特别多,在执行这个方法后,如果点击一个链接(a标签),浏览器不会跳转到新的 URL 去了。我们可以用 event.isDefaultPrevented() 来确定这个方法是否(在那个事件对象上)被调用过了 event.stopPropagation() 方法:阻止事件冒泡 事件是可以冒泡的,为防止事件冒泡到DOM树上,也就是不触发的任何前辈元素上的事件处理函数 event.which:获取在鼠标单击时,单击的是鼠标的哪个键 event.which 将 event.keyCode 和 event.charCode 标准化了。event.which也将正常化的按钮按下(mousedown 和 mouseupevents),左键报告1,中间键报告2,右键报告3 event.currentTarget : 在事件冒泡过程中的当前DOM元素 冒泡前的当前触发事件的DOM对象, 等同于this. this和event.target的区别: js中事件是会冒泡的,所以this是可以变化的,但event.target不会变化,它永远是直接接受事件的目标DOM元素; .this和event.target都是dom对象 如果要使用jquey中的方法可以将他们转换为jquery对象。比如this和
("a").click(function(event)alert(event.type);//"click"事件);event.pageX和event.pageY:获取鼠标当前相对于页面的坐标通过这2个属性,可以确定元素在当前页面的坐标值,鼠标相对于文档的左边缘的位置(左边)与(顶边)的距离,简单来说是从页面左上角开始,即是以页面为参考点,不随滑动条移动而变化event.preventDefault()方法:阻止默认行为这个用的特别多,在执行这个方法后,如果点击一个链接(a标签),浏览器不会跳转到新的URL去了。我们可以用event.isDefaultPrevented()来确定这个方法是否(在那个事件对象上)被调用过了event.stopPropagation()方法:阻止事件冒泡事件是可以冒泡的,为防止事件冒泡到DOM树上,也就是不触发的任何前辈元素上的事件处理函数event.which:获取在鼠标单击时,单击的是鼠标的哪个键event.which将event.keyCode和event.charCode标准化了。event.which也将正常化的按钮按下(mousedown和mouseupevents),左键报告1,中间键报告2,右键报告3event.currentTarget:在事件冒泡过程中的当前DOM元素冒泡前的当前触发事件的DOM对象,等同于this.this和event.target的区别:js中事件是会冒泡的,所以this是可以变化的,但event.target不会变化,它永远是直接接受事件的目标DOM元素;.this和event.target都是dom对象如果要使用jquey中的方法可以将他们转换为jquery对象。比如this和(this)的使用、event.target和$(event.target)的使用;
jQuery键盘事件
鼠标有mousedown,mouseup之类的事件,这是根据人的手势动作分解的2个触发行为。
相对应的键盘也有这类事件,将用户行为分解成2个动作,键盘按下与松手,针对这样的2种动作,
jQuery分别提供了对应keydown与keyup方法来监听
- keydown()事件
当键盘或按钮被按下时,发生keydown事件。
- keyup()事件
当按钮被松开时,发生keyup事件。它发生在当前获得焦点的元素上。
例如:
$(".target2").keyup(function (e) {
$(“em:last”).text(e.target.value);
});
2jQuery键盘事件 keypress()事件
在input元素上绑定keydown事件会发现一个问题:
注意:每次获取的内容都是之前输入的,当前输入的获取不到
keydown事件触发在文字还没敲进文本框,这时如果在keydown事件中输出文本框中的文本,
得到的是触发键盘事件前的文本,而keyup事件触发时整个键盘事件的操作已经完成,
获得的是触发键盘事件后的文本
当浏览器捕获键盘输入时,还提供了一个keypress的响应,这个跟keydown是非常相似
keypress事件与keydown和keyup的主要区别
只能捕获单个字符,不能捕获组合键
无法响应系统功能键(如delete,backspace)
不区分小键盘和主键盘的数字字符
总而言之,
KeyPress主要用来接收字母、数字等ANSI字符,
而 KeyDown 和 KeyUP 事件过程可以处理任何不被 KeyPress 识别的击键。
诸如:功能键(F1-F12)、编辑键、定位键以及任何这些键和键盘换档键的组合等。