jQuery 事件方法
jQuery 是为响应 HTML 页面中的事件而量身定制的。
什么是事件?
网页可以响应的所有不同访客操作都称为事件。
事件代表了某件事情发生的精确时刻。
例如:
- 将鼠标移到元素上
- 选择单选按钮
- 点击元素
“触发”这个术语经常与事件一起使用。例如:“按下按键的那一刻,就会触发按键事件”。
以下是一些常见的 DOM 事件:
| 鼠标事件 | 键盘事件 | 表单事件 | 文档/窗口事件 |
|---|---|---|---|
| click | keypress | submit | load |
| dblclick | keydown | change | resize |
| mouseenter | keyup | focus | scroll |
| mouseleave | blur | unload |
jQuery 事件方法的语法
在 jQuery 中,大多数 DOM 事件都有对应的 jQuery 方法。
要为页面上的所有段落分配点击事件,可以这样做:
$("p").click();
下一步是定义事件触发时应该发生什么。您必须向事件传递一个函数:
$("p").click(function(){
// 要执行的操作写在这里!!
});
常用的 jQuery 事件方法
$(document).ready()
$(document).ready() 方法允许我们在文档完全加载后执行一个函数。该事件已在 jQuery 语法章节中介绍过。
click()
click() 方法将一个事件处理函数附加到 HTML 元素上。
当用户点击 HTML 元素时,该函数将被执行。
下例表示:当 <p> 元素上发生点击事件时,隐藏当前的 <p> 元素:
实例
$("p").click(function(){
$(this).hide();
});
dblclick()
dblclick() 方法将一个事件处理函数附加到 HTML 元素上。
当用户双击 HTML 元素时,该函数将被执行:
实例
$("p").dblclick(function(){
$(this).hide();
});
mouseenter()
mouseenter() 方法将一个事件处理函数附加到 HTML 元素上。
当鼠标指针进入 HTML 元素时,该函数将被执行:
实例
$("#p1").mouseenter(function(){
alert("You entered p1!");
});
mouseleave()
mouseleave() 方法将一个事件处理函数附加到 HTML 元素上。
当鼠标指针离开 HTML 元素时,该函数将被执行:
实例
$("#p1").mouseleave(function(){
alert("Bye! You now leave p1!");
});
mousedown()
mousedown() 方法将一个事件处理函数附加到 HTML 元素上。
当鼠标悬停在 HTML 元素上并按下左键、中键或右键时,该函数将被执行:
实例
$("#p1").mousedown(function(){
alert("Mouse down over p1!");
});
mouseup()
mouseup() 方法将一个事件处理函数附加到 HTML 元素上。
当鼠标悬停在 HTML 元素上并释放左键、中键或右键时,该函数将被执行:
实例
$("#p1").mouseup(function(){
alert("Mouse up over p1!");
});
hover()
hover() 方法接受两个函数,是 mouseenter() 和 mouseleave() 方法的组合。
第一个函数在鼠标进入 HTML 元素时执行,第二个函数在鼠标离开 HTML 元素时执行:
实例
$("#p1").hover(function(){
alert("You entered p1!");
},
function(){
alert("Bye! You now leave p1!");
});
focus()
focus() 方法将一个事件处理函数附加到 HTML 表单字段上。
当表单字段获得焦点时,该函数将被执行:
实例
$("input").focus(function(){
$(this).css("background-color", "#cccccc");
});
blur()
blur() 方法将一个事件处理函数附加到 HTML 表单字段上。
当表单字段失去焦点时,该函数将被执行:
实例
$("input").blur(function(){
$(this).css("background-color", "#ffffff");
});
on()
on() 方法为被选元素附加一个或多个事件处理函数。
为 <p> 元素附加点击事件:
实例
$("p").on("click", function(){
$(this).hide();
});
为 <p> 元素附加多个事件处理函数:
实例
$("p").on({
mouseenter: function(){
$(this).css("background-color", "lightgray");
},
mouseleave: function(){
$(this).css("background-color", "lightblue");
},
click: function(){
$(this).css("background-color", "yellow");
}
});