1. 程式人生 > >動態新增的標籤繫結click事件不響應和關於IOS下click事件委託失效的解決方案

動態新增的標籤繫結click事件不響應和關於IOS下click事件委託失效的解決方案

給動態新增的標籤使用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事件委託失效的解決方案