今天在配合后端修改前端动态效果的时候,发现selector.click()不起作用,调试许久未发现问题,后来才发现事件的元素是动态生成的新的元素.而非静态页面现有的元素.
- 两种事件方法的区别.
selector.click() ------- 适用页面现有元素绑定的点击时间.如果是动态生成的新的元素,是没有事件的.
$(document).on('click','selector',function(){}) ------- 适用于动态生成新元素的情况,将事件委托在document上;如果新产生的元素符合selector,则触发此事件.
- 但是又有一个新的问题---$(document).on('click','selector',function(){})在安卓上和电脑浏览器上都能触发,但是在ios上无效!
解决方法也很简单.
- 在需要绑定事件的元素上添加一句 css ------ selector {cursor:pointer};
- 将click换成 touchstart ;