Jquery 在ios上事件委托失效

Posted rachelch

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jquery 在ios上事件委托失效相关的知识,希望对你有一定的参考价值。

点击通过js遍历出来的列表,跳转页面。点击事件委托在document上,

像这样: $(document).on("click",".nav",function(){  })

在web和android上度没问题,能够正常跳转。但是在ios上点击没有任何反应。原因是:ios上事件委托不能绑定在document和ios上,应该绑定在它的其它父级元素上

        $.each(dataall,function(i,item){
              str += ‘<div class="nav shadow-black" data-str="‘
              +item.data_str
              +‘"><div class="nav-item"><img src="‘
              +item.myheadimgurl
              +‘"  /><div class="ellipsis">‘
              +item.myusername
              +‘</div></div><div class="nav-item alike"><div>VS</div><div>‘
              +item.addtime
              +‘</div></div><div class="nav-item"><img src="‘
              +item.compareheadimgurl
              +‘"  /><div class="ellipsis">‘
              +item.compareusername
              +‘</div></div></div>‘;
            });    
            $("#shareContent").html(str);
//ios点击没反应,未触发事件
$(document).on(‘click‘,‘.nav‘,function(){
    var data_str = $(this).data(‘str‘);
    window.location.href = ‘http://test.epoque.cn/user/footcompare/compare_foot?data_str=‘+ data_str;
})

//将事件委托在其他元素上,ios点击可跳转
$(‘#shareContent‘).on(‘click‘,‘.nav‘,function(){
    var data_str = $(this).data(‘str‘);
    window.location.href = ‘http://test.epoque.cn/user/footcompare/compare_foot?data_str=‘+ data_str;
})

 

另外一个问题:经常在ios上一个按钮点不了,像这样<span>按钮</span>,原因是语义化的问题,可以用a标签或者button,解决办法:加样式:cursor:pointer。

 

以上是关于Jquery 在ios上事件委托失效的主要内容,如果未能解决你的问题,请参考以下文章

ios点击事件失效

ios 点击失效

IOS系统中点击失效

jQuery代码优化:事件委托

[ 面试没回答上的问题2]IOS上给body绑定click事件的bug

Jquery事件委托之Safari