js 生成的DOM,不是HTML写的
用 $('.btn').on("click",function(){}); 这样点击事件可能会不生效。
需要这样事件委托,$('XXX').on('click','.btn',function(){}); ('XXX' 是HTML上的btn的一个父级dom) ,才会生效。
但是当$(document).on('click','.btn',function(){}); 或者 $( body).on('click','.btn',function(){}); 会失效
问题描述:
当使用委托给一个元素添加click事件时,如果事件是委托到 document或 body上,并且委托的元素是默认不可点击的(如 div, span等),此时 click事件会失效。
解决方法
1、将目标元素换成a或者button等可点击的元素;
2、将 click 事件委托到非 document 或 body 的父级元素上;
3、给目标元素加一条样式规则 cursor: pointer(记住加 *{ -webkit-tap-highlight-color: transparent;} )。
作者:张凯斯
链接:https://www.jianshu.com/p/490ad3df0480
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。