先不考虑前端框架的点击事件,例如Vue的bindtap、Angular的ng-click等
(1)、动态?非动态生成的元素?
①、onclick(动态非动态都可以);
onclick=function()
②、$(dom).click(非动态,动态添加进来的元素,无法被点击响应);
$(dom).click(function(){})
③、$(dom).live(动态非动态都可以,弥补了方法②的缺陷,但是该方法已被废弃,不推荐使用,官方建议使用⑤);
$(dom).live(function(){})
④、$(元素).bind("click",);(非动态,如想做到动态,则需要每次加载新数据时,执行bind事件,不建议)
$(dom).bind("click",function(){})
⑤、使用$(document).on("click",)(动态非动态都可以,个人推荐这种)。
$(document).on("click",dom,function(){})
(2)、$(document).on("click",方法) 在iOS设备点击没反应?
被点击的元素需要添加css
cursor:pointer
当然在手机上看不到 小手的图标,自然是没有副作用的。
(3)、 移动端点击300ms延迟
移动端点击会有300ms延迟,不过一般可以不考虑,如果确实是为了页面优化的话,click可以改为tap触摸。可以使用自带的touchstart事件,也可以使用Zepto.js框架的tap事件。
网友评论