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: 动态子元素的选择器(实际触发事件的元素)。
示例:
$("#container").on("click", ".dynamic-button", function() {
console.log("Dynamic button clicked");
});
多事件绑定
支持同时绑定多个事件,用空格分隔事件名:

$(selector).on("click mouseenter", function() {
console.log("Click or mouseenter triggered");
});
或使用对象形式指定不同事件的处理函数:
$(selector).on({
click: function() { /* 点击事件 */ },
mouseenter: function() { /* 鼠标进入事件 */ }
});
传递数据参数
可通过 data 参数向事件处理函数传递额外数据:
$(selector).on("click", { key: "value" }, function(event) {
console.log(event.data.key); // 输出 "value"
});
命名空间
为事件添加命名空间便于管理:
$(selector).on("click.namespace", function() {
console.log("Namespaced event");
});
// 移除特定命名空间的事件
$(selector).off("click.namespace");
注意事项
- 性能优化:事件委托减少重复绑定,适合动态内容。
- 移除事件:使用
.off()解绑事件,避免内存泄漏。 - 替代方法:
.on()是 jQuery 1.7+ 推荐的事件绑定方式,替代了.bind()、.delegate()和.live()。
通过灵活使用 .on(),可以实现高效且可维护的事件处理逻辑。





