自Jquery1.7起,on()方法是 bind()、live()、delegate() 方法的新的替代品,我们推荐使用on()来处理业务中的事件绑定,通过理解这些方法的差异能够更加清晰明白使用on()方法的优势所在
自 Jquery1.7 起,on()方法是 bind()、live()、delegate() 方法的新的替代品。
但这不并意味着其他处理事件绑定的方法没有意义,实际开发过程中可以依照场景选择某些方法。
bind()方法将事件类型和一个事件处理函数直接注册到了被选中的 DOM 元素中。
当使用它来连接事件处理函数时,它仍然非常简洁,但是也存在着一些性能方面的问题
//bind() 方法将事件类型和一个事件处理函数直接注册到了被选中的DOM元素中。
//常见的click()方法是bind()方法的简写
$("#add").bind("click",function(e){});
//等效
$("#add").click(function(e){});
优点:
缺点:
live()方法在使用时与 bind()方法一致,但在实际处理时,存在一个委托机制。
方法将与事件处理函数关联的选择器和事件信息一起附加到文档的根级元素(即 document)。
通过将事件信息注册到 document 上,这个事件处理函数将允许所有冒泡到 document 的事件调用它。
一旦有一个事件冒泡到 document 元素上,Jquery 会根据选择器或者事件的元数据来决定哪一个事件处理函数应该被调用。
这个工作在用户交互时对性能方面造成一定的影响,但是初始化注册事件的过程相当地快。
$("#add").live("click",function(e){});
优点:
缺点:
delegate()方法与 live()方式实现方式相类似,但不是将选择器或者事件信息附加到 document,而是让你指定附加的元素
与 live()方法类似的地方在于,这个方法也是使用事件委托来完成
//#add将作为根元素进行事件委托
$("#add").delegate("a","click",function(e){});
优点:
缺点:
在 Jquery1.7 版本后 bind()、live()和 delegate()方法只需要使用 on()方法一种方式来调用它们
//基本实例
$("p").on("click",function(e){});
优点:
缺点:
温馨提示:系统将通过浏览器临时记忆您曾经填写的个人信息且支持修改,评论提交后仅自己可见,内容需要经过审核后方可全面展示。