iPhone で jQuery の live(click, ...) が効かないとき
jQuery で <li> などの本来クリックされることを意図していない要素に live で clickイベントハンドラを付けると、iPhone の Mobile Safari で反応してくれない「ことがある」。
<blockquote class="tr_bq">$(‘#an_element’).live(‘click’, function() {
// このイベントハンドラが iPhone では安定して呼び出されない
});</blockquote><li> に onclick=”” という意味のない属性を付けると、安定してこれを回避できる。
<blockquote class="tr_bq"> <li id="an_element" onclick="">ららら~</li></blockquote>
あるいは
<ul><li><li>ららら~</li> とする。</li><li>click イベントではなく tap イベントにする。</li><li>live() をやめて bind() にする。</li></ul>
jQuery Mobile も同じ。これに関しては Android は問題なし。
LIVE CLICK EVENTS DON’T REGISTER ON MOBILESAFARI (IPHONE)
http://bugs.jquery.com/ticket/5677