jQuery 的 on 方法用于绑定一个或多个事件处理器函数到指定的元素上。它是 jQuery 事件处理的核心方法之一,提供了灵活的事件绑定机制。
on 方法允许你为当前或未来的匹配元素绑定一个或多个事件处理器。这意味着,即使在绑定事件之后动态添加的元素,也能触发这些事件处理器。
$(selector).on(event, [selector], [data], handler);event:一个或多个空格分隔的事件类型和可选的命名空间。selector(可选):一个选择器字符串,用于过滤触发事件的后代元素。data(可选):当事件触发时传递给事件处理函数的额外数据。handler:事件触发时执行的函数。selector 参数,可以实现事件委托,即把事件处理器绑定到一个父元素上,然后由这个父元素来触发子元素的事件。on 方法绑定的事件处理器依然有效。off 方法可以方便地解绑之前使用 on 绑定的事件处理器。on 方法支持多种类型的事件,包括但不限于:
click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout 等。keydown, keyup, keypress 等。submit, change, focus, blur 等。load, unload, scroll, resize 等。// 绑定一个点击事件处理器
$('#myButton').on('click', function() {
alert('按钮被点击了!');
});
// 使用事件委托绑定一个点击事件处理器到所有 class 为 'myLink' 的 a 元素上
$('#container').on('click', '.myLink', function() {
alert('链接被点击了!');
});
// 绑定一个带有额外数据的点击事件处理器
$('#myButton').on('click', { message: 'Hello, world!' }, function(event) {
alert(event.data.message);
});off 方法先解绑之前的事件处理器,然后再重新绑定。one 方法绑定一次性事件处理器。通过合理使用 on 方法,可以有效地处理各种事件,提升用户体验和页面交互性。