一、事件API
jQuery对象的核心事件方法,核心事件函数,主要用于为元素的任意事件(包括自定义事件)添加、取消、触发绑定的一个或多个事件处理函数
二、on()
1、说明
在被选元素及子元素上添加一个或多个事件处理程序。
自 jQuery 版本** 1.7 起**,on() 方法是 bind()、live() 和 delegate() 方法的新的替代品。该方法给 API 带来很多便利,我们推荐使用该方法,它简化了 jQuery 代码库。
2、语法
$("selector").on(event,childSelector,data,function,map)
3、参数
参数 |
说明 |
event(必要) |
规定要从被选元素移除的一个或多个事件或命名空间。由空格分隔多个事件值。必须是有效的事件 |
data(可选) |
规定只能添加到指定的子元素上的事件处理程序(且不是选择器本身,比如已废弃的 delegate() 方法) |
function(可选) |
规定当事件发生时运行的函数。 |
map |
({event:function, event:function, ...}),包含要添加到元素的一个或多个事件,以及当事件发生时运行的函数。 |
4、栗子
html代码
<p>盘我<p>
jq代码
$("p").on("click",function(){
alert("给p元素添加单击事件");
});
$("p").on({
click:function{
alert("一次绑定多个事件--->点击事件")
}
dblclick:function{
alert("一次绑定多个事件--->双击事件")
}
});
三、移除事件
1、说明
off()
方法通常用于移除通过on()方法添加的事件处理程序。自 jQuery 版本 1.7 起,off() 方法是 unbind()、die() 和 undelegate() 方法的新的替代品。
2、语法
$("select").off(events,select, function(event e))
3、参数
参数 |
说明 |
events(可选) |
一个或多个空格分隔的事件类型 |
select(可选) |
字符串类型 一个选择器,当绑定事件处理程序时匹配最初传递给 .on() 的那个 |
function |
以前附加的事件处理函数,或特殊值false 。 |
4、栗子
html代码
<button id="add">点击事件</button>
<button id="off">移除事件</button>
qj代码
$("#off").on("click",function(){alert("点击事件")})
// 移除当前元素的所有事件
$("#add").off();
$("#off").click(function () {
$("#add").off("click", function(){
alert("移除事件")
})
});
$("#off").click(function () {
$("body").off("click","#off" ,function(){
alert("通过父类元素移除指定事件")
})
});
四、click()
1、说明
触发每一个匹配元素的click事件。这个函数会调用执行绑定到click事件的所有函数。
2、语法
$("selector").click(data,fn);
3、参数
参数 |
说明 |
data |
fn处理函数的参数或数据。 |
fn |
在每一个匹配元素的click事件中绑定的处理函数。 |
4、栗子
html代码
jq代码
五、change()
1、说明
当元素的值发生改变时,会发生change事件。该事件仅适用于文本域(text field),以及 textarea 和 select 元素。当用于 select 元素时,change
事件会在选择某个选项时发生。当用于 text field 或 text area 时,该事件会在元素失去焦点时发生
2、语法
$("selector").change(data,fn);
3、参数
参数 |
说明 |
data |
fn处理函数的参数或数据。 |
fn |
在每一个匹配元素的keydown事件中绑定的处理函数。 |
4、栗子
html代码
<input type='text'>
jq代码
$(":text").change(function(){
$(this).css("background-color","#FFFFCC");
});
六、mouseover() mouseout()
1、说明
当鼠标指针位于元素上方时,会发生mouseover
事件。该事件大多数时候会与mouseout
事件一起使用。
当鼠标指针从元素上移开时,发生mouseout
事件。该事件大多数时候会与mouseover
事件一起使用。
请使用hover事件代替
2、语法
$("selector").mouseover(data,fn);
$("selector").mouseout(data,fn);
3、参数
参数 |
说明 |
data |
fn处理函数的参数或数据。 |
fn |
在每一个匹配元素的keydown事件中绑定的处理函数。 |
七、hover
1、说明
是mouseover和mouseout的合成事件
2、语法
$("selector").hover(inFunction,outFunction)
3、参数
参数 |
描述 |
inFunction |
必需。规定 mouseover 事件发生时运行的函数。 |
outFunction |
可选。规定 mouseout 事件发生时运行的函数。 |
4、栗子
html代码
<a href="#">首页<>
jq代码
// 给a元素添加hover事件
$("a").hover(
function () {
$(this).css('color','red')
},
function () {
$(this).css('color','black')
}
);
八、select()
1、说明
当 textarea或文本类型的 input 元素中的文本被选择时,会发生 select 事件。
2、语法
$("selector").$(selector).select(function)
3、参数
参数 |
说明 |
function(可选) |
当发生 select 事件时运行的函数。 |
4、栗子
html代码
<input type="text" value="请输入内容"/>
<input type="text" value="测试内容"/>
<div></div>
qj代码
$(":input").select( function () {
$("div").text("文本框被选中");
});
九、submit()
1、说明
当提交表单时,会发生 submit 事件。该事件只适用于表单元素。
2、语法
$("selector").submit(data,fn);
3、参数
参数 |
说明 |
data |
fn处理函数的参数或数据。 |
fn |
在每一个匹配元素的submit事件中绑定的处理函数。 |
4、栗子
html代码
<form>
<input type='text'>
<input type='password'>
</form>
qj代码
$("form").submit(function () {
alert("表单提交事件");
return false;
} );
十、支持的事件汇总
1、元素事件
方法 |
版本 |
描述 |
bind() |
1.0 |
为元素的任意事件绑定事件处理函数。 |
one() |
1.1 |
为元素(或后代元素)的任意事件绑定一次性的事件处理函数。 |
live() |
1.31.71.9 |
为元素(或后代元素)的任意事件绑定事件处理函数。 |
delegate() |
1.4.2 |
为元素(或后代元素)的任意事件绑定事件处理函数。 |
on() |
1.7 |
为元素(或后代元素)的任意事件绑定事件处理函数。 |
unbind() |
1.0 |
bind()的逆操作,解除元素任意事件绑定的处理函数。 |
die() |
1.31.71.9 |
live()的逆操作,解除元素(或后代元素)任意事件绑定的处理函数。 |
undelegate() |
1.4.2 |
delegate()的逆操作,解除元素(或后代元素)任意事件绑定的处理函数。 |
off() |
1.7 |
on()的逆操作,解除元素(或后代元素)任意事件绑定的处理函数。 |
trigger() |
1.0 |
手动触发元素上的任意事件。 |
triggerHandler() |
1.2 |
手动触发元素上的任意事件,但不会触发元素的默认事件行为,也不支持事件冒泡。 |
2、浏览器事件——主要用于浏览器Window对象的事件
resize() |
1.0 |
为resize事件绑定处理函数,或触发该事件。该事件会在浏览器窗口大小被改变时触发。 |
scroll() |
1.2 |
为scroll事件绑定处理函数,或触发该事件。该事件会在元素滚动(滚动条有变化)时触发。 |
3、表单事件——主要用于表单元素的事件
focus() |
1.0 |
为focus事件绑定处理函数,或触发该事件。该事件会在元素获得焦点时触发。 |
blur() |
1.0 |
为blur事件绑定处理函数,或触发该事件。该事件会在元素失去焦点时触发。 |
focusin() |
1.0 |
为focusin事件绑定处理函数。该事件会在元素获得焦点时触发。 |
focusout() |
1.0 |
为focusout事件绑定处理函数。该事件会在元素失去焦点时触发。 |
change() |
1.0 |
为change事件绑定处理函数,或触发该事件。该事件会在元素的值被更改时触发。 |
select() |
1.0 |
为select事件绑定处理函数,或触发该事件。该事件会在元素的用户输入被选中时触发。 |
submit() |
1.0 |
为submit事件绑定处理函数,或触发该事件。该事件会在表单被提交时触发。 |
4、键盘事件——与键盘按键操作相关的事件
keydown() |
1.0 |
为keydown事件绑定处理函数,或触发该事件。该事件会在键盘按键被按下时触发。 |
keypress() |
1.0 |
为keypress事件绑定处理函数,或触发该事件。该事件会在键盘按键被按下时触发。 |
keyup() |
1.0 |
为keyup事件绑定处理函数,或触发该事件。该事件会在键盘按键被按下并释放时触发。 |
5、鼠标事件——与鼠标按键操作相关的事件
click() |
1.0 |
为click事件绑定处理函数,或触发该事件。该事件会在点击鼠标按钮时触发。 |
dblclick() |
1.0 |
为dblclick事件绑定处理函数,或触发该事件。该事件会在双击鼠标按钮时触发。 |
toggle() |
1.01.81.9 |
为click事件绑定两个以上的处理函数,每次触发事件时将轮流切换执行其中的单个函数。 |
hover() |
1.0 |
为hover事件绑定处理函数。该事件会在鼠标进入或离开元素时触发。 |
mouseenter() |
1.0 |
为mouseenter事件绑定处理函数。该事件会在鼠标进入元素时触发。 |
mouseleave() |
1.0 |
为mouseleave事件绑定处理函数。该事件会在鼠标离开元素时触发。 |
mouseover() |
1.0 |
为mouseover事件绑定处理函数。该事件会在鼠标进入元素时触发。 |
mouseout() |
1.0 |
为mouseout事件绑定处理函数。该事件会在鼠标离开元素时触发。 |
mousedown() |
1.0 |
为mousedown事件绑定处理函数。该事件会在鼠标按钮被按下时触发。 |
mouseup() |
1.0 |
为mouseup事件绑定处理函数。该事件会在鼠标按钮被按下并释放时触发。 |