FishinShallow

移动端动态节点绑定事件ios点击失效

2019-03-07

3915

笔记

当你的DOM节点是动态生成在页面上的时候。 普通的点击$(‘xx’).click()会因为获取不到dom元素而致使点击失效。 * 一、这种情况下一般使用时间托管例如jq的: ``` $(document).on('xx','click',fn) ``` 这个通过事件托管可以让jq获取到动态生成的dom节点,以此解决点击失效的问题。 * 二、然而在ios上这样的方法解决不了这个问题,原因是: 在ios系统中,例如`document,div,body`这些本身并没有可以被点击的属性的元素不能作为托管点击事件的父元素。所以,用这样的方法进行事件托管,ios会获取不到你的`document`的点击事件,自然无法获取到你想要绑定的元素身上。 解决办法就是把`document`换成你想要绑定元素的父元素上可以是最大的那个div,然后在最大元素的样式中加入`cursor:pointer; `这个属性可以让父元素变成拥有可被点击属性的盒子,这样就可以解决动态数据无法绑定事件的问题。

评论