何时在jquery中使用on()和click()函数
何时在jquery中使用on()和click()函数
在jquery中,使用on()和click()有什么区别?
例如:两者的工作方式相同:
$(".classname").click( function() { var toAdd = $('input[name=checkListItem]').val(); }); $(".classname").on("click", function () { var toAdd = $('input[name=checkListItem]').val(); });
我应该在什么时候使用.on(),什么时候使用click()?如果两者相同,应该使用哪一个?
在jQuery中,当需要绑定事件处理程序时,有两种常用的方法:使用.on()
和.click()
。这两种方法的语法是相同的,但是它们在使用事件委托语法时有所不同,事件委托语法只被.on()
支持。
例如,使用.click()
方法绑定事件处理程序的话,它只会注册到在代码执行时存在的元素上。如果之后添加了一个具有相同类名的新元素,那么点击该元素时处理程序将不会触发。
为了解决这个问题,可以使用事件委托。通过将处理程序注册到父元素上,并传递一个选择器作为第二个参数,当事件冒泡到父元素时,它会测试目标元素及其祖先元素是否满足选择器的条件,如果满足,则执行处理程序。
另外,.on()
方法还支持多个事件,例如.on('keyup click doubleclick')
可以同时绑定键盘弹起、点击和双击事件的处理程序。
当需要动态绑定事件处理程序,并且需要支持事件委托和多个事件时,应该使用.on()
方法。而如果只需要简单地绑定点击事件处理程序,则可以使用.click()
方法。