IOS設(shè)備上給body綁定click事件不生效的原因及解決辦法
事件背景:
最近在做一個(gè)移動(dòng)端業(yè)務(wù)的時(shí)候碰到一個(gè)bug,在ios上對(duì)body綁定click事實(shí)現(xiàn)事件代理冒泡至某些元素上盡然不生效。
思考:
暫借助jquery展示下事件綁定代碼,將所有標(biāo)簽含有data-tip屬性的元素通過(guò)事件代理至body
$('body').on('click','[data-tip]',function(e){ console.log($(this.).attr('data-tip')) })
這樣做在android和pc上都可以正常實(shí)現(xiàn),但是在ios上面對(duì)部分標(biāo)簽盡然不生效。比如 tr , span ...這樣的標(biāo)簽
解決辦法:
1.將click事件換成touch事件,同時(shí)還可以解決300ms的click延遲問(wèn)題,但是需要e.stopPropagation()來(lái)阻止冒泡的處理會(huì)非常麻煩。
2.在對(duì)不能正常冒泡的元素上再進(jìn)行一次事件綁定,比如對(duì)于tr可以在<table>上再進(jìn)行一次事件代理。
3.最簡(jiǎn)潔的辦法,在不能正常冒泡的元素的css屬性里面添加,cursor:pointer屬性。
4.換成可以正常冒泡的標(biāo)簽。
- iOS如何獲取屏幕寬高、設(shè)備型號(hào)、系統(tǒng)版本信息
- asp.net 通過(guò)UserAgent判斷智能設(shè)備(Android,IOS)
- 檢測(cè)iOS設(shè)備是否越獄的方法
- Cisco設(shè)備IOS的恢復(fù)方法
- 使用Reachability類判斷iOS設(shè)備的當(dāng)前網(wǎng)絡(luò)連接類型
- 如何在iphon IOS設(shè)備上使用二維碼
- Cisco路由交換設(shè)備之IOS故障排除
- iOS獲取當(dāng)前設(shè)備WiFi信息的方法
- iOS App開發(fā)中通過(guò)UIDevice類獲取設(shè)備信息的方法
- iOS獲取設(shè)備唯一標(biāo)識(shí)的8種方法
相關(guān)文章
理解iOS多線程應(yīng)用的開發(fā)以及線程的創(chuàng)建方法
這篇文章主要介紹了理解iOS多線程應(yīng)用的開發(fā)以及線程的創(chuàng)建方法,代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下2015-11-11iOS 獲取公歷、農(nóng)歷日期的年月日的實(shí)例代碼
本篇文章主要介紹了iOS 獲取公歷、農(nóng)歷日期的年月日的實(shí)例代碼,主要介紹了三種方法,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-02-02iOS 委托與文本輸入(內(nèi)容根據(jù)iOS編程編寫)
這篇文章主要介紹了iOS 委托與文本輸入(內(nèi)容根據(jù)iOS編程編寫) 的相關(guān)資料,需要的朋友可以參考下2016-09-09iOS進(jìn)階之xib上控件自動(dòng)生成純代碼
本篇內(nèi)容是一篇關(guān)于IOS開發(fā)進(jìn)階的內(nèi)容,學(xué)習(xí)xib上控件自動(dòng)生成純代碼這個(gè)功能,有興趣的朋友參考下。2018-02-02ios開發(fā)navigationController pushViewController 方式多次跳轉(zhuǎn)返回到最上層返回到
這篇文章主要介紹了ios開發(fā)navigationController pushViewController 方式多次跳轉(zhuǎn)返回到最上層返回到指定的某一層的實(shí)現(xiàn)方法的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09iOS應(yīng)用程序之間的幾種跳轉(zhuǎn)情況詳解
這篇文章給大家詳細(xì)介紹了iOS應(yīng)用程序之間跳轉(zhuǎn)的幾種情況,包括跳轉(zhuǎn)到另一個(gè)程序的主界面、跳轉(zhuǎn)到另一個(gè)程序的指定界面以及如何從目標(biāo)程序的非主頁(yè)界面回到當(dāng)前(跳轉(zhuǎn)前)程序呢?有需要的朋友們可以下面來(lái)一起看看。2016-09-09