Jquery.on
jQuery .on() 方法详解
jQuery.on() 是 jQuery 中用于绑定事件处理函数的核心方法,支持动态元素事件委托和多种事件类型绑定。以下是其核心用法和注意事项:
基本语法
$(selector).on(eventName, handlerFunction);
- selector:目标 DOM 元素的选择器。
- eventName:事件名称(如
"click"、"mouseenter")。 - handlerFunction:事件触发时执行的函数。
示例:
$("#button").on("click", function() {
alert("Button clicked!");
});
事件委托语法
通过指定子元素选择器实现动态元素事件绑定:

$(parentSelector).on(eventName, childSelector, handlerFunction);
- parentSelector:静态父元素的选择器。
- childSelector:动态子元素的选择器(可省略)。
示例(动态列表项点击):
$("#list").on("click", "li", function() {
console.log($(this).text());
});
多事件绑定
支持同时绑定多个事件,用空格分隔事件名:

$("#element").on("click mouseenter", function() {
console.log("Event triggered");
});
或使用对象形式为不同事件指定处理函数:
$("#element").on({
click: function() { /* 点击事件 */ },
mouseenter: function() { /* 鼠标进入事件 */ }
});
传递数据
可通过参数传递额外数据给事件处理函数:
$("#element").on("click", { key: "value" }, function(event) {
console.log(event.data.key); // 输出 "value"
});
注意事项
- 性能优化:事件委托适合动态生成的元素,减少重复绑定。
- 移除事件:使用
.off()解绑事件,需与.on()参数一致。 - 命名空间:可通过
eventName.namespace形式(如"click.myPlugin")管理事件。
示例(命名空间和解绑):
$("#element").on("click.myNamespace", handler);
$("#element").off("click.myNamespace");
替代方法
.click(),.hover()等是.on()的简写形式,但缺乏事件委托能力。- 推荐优先使用
.on()以保持代码一致性。
通过灵活使用 .on() 方法,可以实现高效、可维护的事件处理逻辑。






