jquery事件
jQuery 事件基础
jQuery 的事件系统简化了 DOM 事件处理,支持跨浏览器兼容性。核心方法包括:
.on():绑定事件处理函数,推荐统一使用此方法。.off():移除事件绑定。.trigger():手动触发事件。
示例:
// 绑定点击事件
$("#button").on("click", function() {
alert("Button clicked!");
});
// 移除事件
$("#button").off("click");
// 触发事件
$("#button").trigger("click");
常见事件类型
jQuery 支持原生 DOM 事件(如 click、mouseenter)和自定义事件:
- 鼠标事件:
click,dblclick,mouseenter,mouseleave - 键盘事件:
keypress,keyup,keydown - 表单事件:
submit,change,focus,blur
示例:
// 表单提交阻止默认行为
$("form").on("submit", function(e) {
e.preventDefault();
console.log("Form submitted");
});
事件委托
通过 .on() 实现事件委托,适用于动态添加的元素:
// 委托到父元素,处理子元素点击
$("#parent").on("click", ".child", function() {
console.log("Child element clicked");
});
一次性事件
使用 .one() 绑定只触发一次的事件:
$("#button").one("click", function() {
alert("This will only fire once.");
});
自定义事件
定义并触发自定义事件:
$("#element").on("customEvent", function() {
console.log("Custom event triggered");
});
$("#element").trigger("customEvent");
事件对象
事件处理函数接收 event 对象,常用属性:
event.target:触发事件的元素。event.preventDefault():阻止默认行为。event.stopPropagation():阻止事件冒泡。
示例:

$("a").on("click", function(e) {
e.preventDefault();
console.log("Link prevented:", e.target.href);
});
注意事项
- 避免过度使用事件委托,可能影响性能。
- jQuery 3.0+ 推荐仅使用
.on()和.off(),废弃.bind()、.delegate()等方法。 - 事件处理函数中的
this指向当前 DOM 元素,需用$(this)转换为 jQuery 对象。






