5000164 is here

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

Published 2013.3.20 by 菅原 浩

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で登録できない