jQuery 事件处理程序的差异

jQuery event handler differences

本文关键字:程序 事件处理 jQuery      更新时间:2023-09-26

下面是编写事件处理程序的两种不同方法:

$('element').on("click",function(){
    // do stuff
});

$('element').click(function(){
    // do stuff
});

两者之间的主要区别是什么?什么情况比另一种更适合?

根据jQuery的API文档

.on(( 方法将事件处理程序附加到 jQuery 对象中当前选定的元素集。从 jQuery 1.7 开始,.on(( 方法提供了附加事件处理程序所需的所有功能。有关从旧版 jQuery 事件方法转换的帮助,请参阅 .bind((、.delegate(( 和 .live((。要删除与 .on(( 绑定的事件,请参阅 .off((。若要附加仅运行一次然后自行删除的事件,请参阅 .one((

.on(...)函数利用所有其他事件绑定机制。它应该始终有效。根据jQuery的API文档

此方法是前两个变体中的 .on( "click", handler ( 和第三个变体中的 .trigger( "click" ( 的快捷方式。当鼠标指针位于元素上时,单击事件将发送到元素,并且按下并释放鼠标按钮。任何 HTML 元素都可以接收此事件。例如,考虑 HTML:

.click(...)element.on("click", ...)的快捷方式

click

(( 是 on(( 的方便快捷方式。它与 on(( 的唯一区别是,如果你在没有参数的情况下调用它,它将调用:

$(element).trigger('click');