iOSでDOMに要素追加してjQueryでclickイベントを取得する

clickイベントを取得したい

DOMに要素を追加するとjQueryのclickイベントって効かなくなるんですね

知らなかった

そういう時はjQueryのonを使えばclickイベントも取得できるってことで実装

Chromeで動作確認

動いた

iOSで見てみる

動かない

iOSでonのclickイベントが取得できない

iOSで動かなくていろいろ調べてみました

でもサンプルが動いてるサイトもある

うーん

そこで手元でちょっとずつ変更を加えながら調べてみたところ

サンプルのaタグをdivタグに変えると動かなくなるということが判明

そこでonlick=””を追加すれば動くようになるという記事を発見

divタグにonclick=””を追加することでiOSでも無事にclickイベントを拾うことができました

iOSのlabel要素と同じ対処法ですね

動かないのは同じような理由なのでしょうか

デモ

まとめ

iOSのDOMに追加したdiv要素のclickイベントを取得したかったらonclick=””をつけること

参考

スマートフォンブラウザのjQuery Clickイベントに関すること - くらげだらけ

guess what?: JQueryのliveイベントがiPhoneのSafariで登録できない

Author
菅原 浩
Web プログラマー。好きな言葉は「安定的に不安定」。オーストラリアで英語を勉強した後に、現在デンマークで幸せについて考えている。
Next Post
「あんたが怯えるから相手も怯えるのよ」という言葉を考えて頭に染み込ませる
Previous Post
ブログのデザインを変更しました Version 1.8
Recent Posts
Electron と Scala.js と scalajs-react と ScalaCSS を使ってアプリを作った時のログ
Scala で Flyway と Slick を使って codegen した時のログ
自分とは連続した情報であると定義する
本「リモートチームでうまくいく」の感想
映画「Whiplash」の感想