给动态添加的标签使用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事件,如我红框所示,简单粗暴

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

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

相关文章:

  • 2021-07-01
  • 2021-11-10
  • 2021-12-16
  • 2021-11-23
  • 2021-04-30
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-08-30
  • 2022-12-23
  • 2021-08-10
  • 2021-11-15
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案