点击事件click和.on('click') 两者之间的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了点击事件click和.on('click') 两者之间的区别相关的知识,希望对你有一定的参考价值。

参考技术A 点击事件click和.on('click') 两者之间的区别 

第1种事件

$('.XX').click('.xxx',function() alert('xxx') );

第2种事件

$('.XXX').on('click','.xxx', function() alert('xxx') )

click是点击事件,但是在页面加载完之后,jquery事件新添加的元素,用click的话是无法获取元素的,这个时候要用on去获取元素事件,简单的说页面加载完成时候页面显示的元素可以用on,也可以用click,但是页面加载完成之后后期再追加的元素只能用on。

这两个事件的区别之处在于:

简单的说页面加载完成时候页面显示的元素(DOM节点已全部加载完)可以用on, 也可以用click,

但是在页面加载完成之后后期再追加元素(DOM节点元素还没完全显示出来)只能用on

解释一下:

$('.AAA').on('click','.bbb', function() alert('bbb') )

获取class 为bbb元素的上一级(或父级)元素,选择click的方式,执行回调函数function ()并运行弹出元素bbb,这里的on,元素bbb如果没全部加载出来。没有直接获取到class为bbb的元素,这个时候它就会去找上一级(或父级)的元素,然后在从上一级(或父级)往下接着再执行,就会找到class为bbb的元素了,就触发了点击事件,并执行事件里面的函数啦 ~

$("p").on("click",function()

alert("段落被点击了。");

);

关于jquery中on绑定click事件在苹果手机失效的问题

因为是动态添加的内容,所以想要使用click事件,需要给他用on绑定一下:

$(document).on("click",".next_button",function(){

  alert();

});

这个时候,使用苹果手机访问的时候,发现了一个坑爹的问题,如论如何点击“下一步”,都没有任何反应,可是在安卓和各种模拟器中一切正常。后来经过查找资料才知道,苹果有这么个设置: 
对于点击的对象,拥有cursor:pointer这个样式的设置,也就是说,鼠标放上去,能够出现“手”型的图标才被认作可以使用点击事件,于是果断增加了样式

<style>

.next_button{ cursor:pointer }

</style>

文章转自:http://blog.csdn.net/yuexiage1/article/details/51612496


以上是关于点击事件click和.on('click') 两者之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

$().click()和$(document).on('click','要选择的元素',function(){})的不同

JQ简单的点击事件介绍

关于JS 事件冒泡和onclick,click,on()事件触发顺序

$().click()和$(document).on('click','选择的元素',function(){})的不同

jquery鼠标点击事件是啥?

关于jquery中on绑定click事件在苹果手机失效的问题