jQuery 事件处理程序的差异
jQuery event handler differences
下面是编写事件处理程序的两种不同方法:
$('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');
相关文章:
- keyup事件处理程序更改焦点不适用于快速键入
- 提示使用服务器端事件处理程序激活JavaScript
- 将事件处理程序绑定到任何可能的事件
- 正在将事件处理程序添加到不存在的类
- 在循环中附加事件处理程序时出现浏览器性能问题
- 在同一个javascript事件处理程序中调用不同的函数
- 有没有一种方法可以让内联事件处理程序在元素创建后立即执行
- 检查事件处理程序参数
- 实现延迟的jquery更改事件处理程序
- 如何使用Node.js在JavaScript模块文件之间使用事件处理程序
- 如何使jQuery的“bind”或“on”事件处理程序幂等
- 带有参数的Javascript事件处理程序
- Jquery事件处理程序仅适用于匿名函数
- 如何从另一个处理程序内部取消JavaScript事件处理程序函数的执行
- 如何在jQuery事件处理程序中存储和重用超时
- 如何向onClick事件处理程序传递一个接受参数的函数,并且仍然将该函数绑定到组件's”;这个“;上下文
- 异步处理所有事件处理程序的方法
- jsplumb中的Click事件处理程序丢失“;这个“;对象
- 构造函数中的事件处理程序与构造函数外的事件处理函数的行为不同
- 如何在事件处理程序的回调中防止Default