动态添加的标签绑定click事件不响应和关于IOS下click事件委托失效的解决方案

来源:互联网 发布:paintbrush for mac 编辑:程序博客网 时间:2024/05/01 21:12

给动态添加的标签使用jQuery绑定click事件不响应以及iOS设备上click事件委托失效问题

不响应原因:当它使用jQuery绑定click事件时,对应的DOM对象还没有生成,所以会不响应

解决方案1:可以使用代理事件来解决,代码1如下,但是使用下面这个代码1会引起另外一个问题,就是安卓和PC上都可以正常响应,但是在iOS设备上是没有响应,解决方案见代码2,至于为什么在iOS设备上不响应,参考最下面的链接地址,我在这里不在多说,解决方法见代码2片段,需要注意的一点就是绑定的目标元素,我采用的是下面参考链接中的第2种解决方案,只要是非document,body的父级元素都可以。(ps:我绑定的cinemaList是他的爷爷,至于你想绑定它哪个父级元素就看你心情了)

代码1:

$(document).on('click','.allList .detail',function () {    var cinemaID = $(this).attr("cinemaID");    localStorage.setItem("userChooseCinemaId", cinemaID);    window.location.href = "index.html";});

代码2:

$('.cinemaList').delegate('.allList .detail','click',function (event) {    var cinemaID = $(this).attr("cinemaID");    localStorage.setItem("userChooseCinemaId", cinemaID);    window.location.href = "index.html";});


解决方案2:在动态生成标签事直接绑定onclick事件,如我红框所示,简单粗暴


参考链接:http://www.cnblogs.com/-walker/p/6726833.html  关于IOS下click事件委托失效的解决方案

阅读全文
0 0
原创粉丝点击