Jquery 事件委托在andriod正常在ios失效

最近做一个项目,h5开发手机应用,其中有个页面,因为dom结构都是动态追加,直接绑定事件失效,所以将事件委托给了document元素,具体绑定情况如下:

 $(document).on('click',".item-name",function(e){ ***})

我的结构式<div>按钮</div>

web测试和安卓测试都正常,但是在IOS端缺失效了,查了一下资料才知道原来是标签语义化的原因:

根据H5新定义,默认可点击的元素有a标签和button标签,也就是给这两种标签进行事件委托是完全没有问题的。

由此解决的办法有

第一种:换dom结构完全按照语意规定,点击元素使用button,超链使用a标签

第二种:把document换成selector的父元素,前提是父元素不是由JS生成的。

第三种:解决的方法很巧妙,就是给需要绑定事件的元素添加一个css cursor: pointer 。
exp:

selector {
       cursor:pointer;
}

推荐使用第三种方法,灵活,好控制。需要注意的是,cursor属性是可继承的,如果点击元素还有子元素,而且需禁用事件,记得将cursor属性值设置为default。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值