IOS設備上給body綁定click事件不生效的原因及解決辦法
事件背景:
最近在做一個移動端業(yè)務的時候碰到一個bug,在ios上對body綁定click事實現(xiàn)事件代理冒泡至某些元素上盡然不生效。
思考:
暫借助jquery展示下事件綁定代碼,將所有標簽含有data-tip屬性的元素通過事件代理至body
$('body').on('click','[data-tip]',function(e){ console.log($(this.).attr('data-tip')) })
這樣做在android和pc上都可以正常實現(xiàn),但是在ios上面對部分標簽盡然不生效。比如 tr , span ...這樣的標簽
解決辦法:
1.將click事件換成touch事件,同時還可以解決300ms的click延遲問題,但是需要e.stopPropagation()來阻止冒泡的處理會非常麻煩。
2.在對不能正常冒泡的元素上再進行一次事件綁定,比如對于tr可以在<table>上再進行一次事件代理。
3.最簡潔的辦法,在不能正常冒泡的元素的css屬性里面添加,cursor:pointer屬性。
4.換成可以正常冒泡的標簽。
相關文章
理解iOS多線程應用的開發(fā)以及線程的創(chuàng)建方法
這篇文章主要介紹了理解iOS多線程應用的開發(fā)以及線程的創(chuàng)建方法,代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下2015-11-11iOS 委托與文本輸入(內(nèi)容根據(jù)iOS編程編寫)
這篇文章主要介紹了iOS 委托與文本輸入(內(nèi)容根據(jù)iOS編程編寫) 的相關資料,需要的朋友可以參考下2016-09-09ios開發(fā)navigationController pushViewController 方式多次跳轉(zhuǎn)返回到最上層返回到
這篇文章主要介紹了ios開發(fā)navigationController pushViewController 方式多次跳轉(zhuǎn)返回到最上層返回到指定的某一層的實現(xiàn)方法的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-09-09