以click事件为例:
$().click()和$().on('click',function(){})
普通绑定事件:$(’.btn1’).click(function(){}绑定
on绑定事件:$(document).on(‘click’,’.btn2’,function(){}绑定
那么这两种方式有什么区别呢?
-
$(选择器).click(fn)
当选中的选择器被点击时触发回调函数fn。只针对与页面已存在的选择器。 -
$(选择器).on('click',function(){})
(Jq1.7+)
on()
事件相当于是$(document).click(function(){if(点击的是btn){}})
,给document添加了一个click事件,当点击的是btn,事件冒泡原理,从里到外,就相当于点击了document,那么就会执行后面的操作,本质上只给document
添加了一个事件,而click()事件是给所有btn添加了click事件。
另外on()
事件可以添加多个事件同时支持动态绑定元素,即页面上元素有添加或变化后仍可绑定,前提是‘选择器’须是目标绑定元素的父元素。
on()委托事件的优点:原来的事件绑定,要绑定好多事件,现在只需要绑定一个事件,大大提高了效率和页面性能,解决的动态添加元素导致不能触发的bug。