【iOS】実機のiOSだとクリックイベントが動作しない件でハマった【Safari】
2980 ワード
経緯
エミュレータでは動作していたクリックイベントが実機のiPhoneで動作確認した際、動作せず…
中々デバッグが難しいという状況もあり、Google先生に聞きまくることにしました。
結論
ルート要素にbodyやdocumentなどを指定し、クリックを想定していないタグのidやclassに対してイベントを付与していたため。
(divタグ、pタグ、spanタグなどに対してイベントを付与すると起こる)
実装
テンプレート側
index.html
<div class='contents'>
<div class="icon"><span class='open'></span></div>
</div>
変更前
controller.js
$('document').on('click','.icon .open',function(){
open();
});
変更後
controller.js
$('.contents').on('click','.icon .open',function(){
open();
});
補足
・参考記事によるとその他の解消方法もあるようですが、今回は上記で解決したのでそちらで。
参考記事
Qiita記事
iOS で click イベントがわけのわからない動作をする件について
iOS で、要素をタッチしてもクリックイベントが発生しない問題への対処
Author And Source
この問題について(【iOS】実機のiOSだとクリックイベントが動作しない件でハマった【Safari】), 我々は、より多くの情報をここで見つけました https://qiita.com/nuts_468/items/3f1da63a777d88ba2881著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .