19. 4月 2015 · Write a comment · Categories: jQuery · Tags: , ,

最近は React.js の話題で持ちきりな web 界隈ですが、まだまだ現役で jQuery を使っています。と言うより、ちょっと前まで Angular.js とか Backbone.js とか言ってたやんけ!!コロコロ変わり過ぎで、採用できないっす… そもそも私は PHP の人間で、そっちのテンプレートエンジンを使っておりますので、 js フレームワークの導入は現状難しいかなと思っております。

4月になりまして、入社2年目に入りました。ようやく jQuery も使えるようになってきたかなと思っていましたが、先日つまづいたところがありましたので備忘録的に残しておきたいと思います。



何の事はない jQuery の click イベントを使おうとしただけなんですが、iPhonesafari だけ全く反応してくれなかったのです。

$(document).on('click', '.hoge', function(){
    // hogehoge;
});

上記のようなコードで、 hoge クラスがクリックされたら処理を行いたかったのですが、iPhone の safariだけ全く反応しませんでした。いろいろ試した結果の解決方法は、 「hoge クラスに onclick を付ける」です。具体的には下のようになります。



<div class="hoge" onclick="">
    <span>いえええええい!!</span>
</div>

onclick には何も指定しなくて構いません。ただ onclick があるだけで、 jQuery の click イベントが発火するようになりました。ただし、これが正しい解決方法なのかどうかは私には分かりません。いままで普通に iPhone safari でクリックイベント使ってたんですが何故今回動かなかったのか…?とりあえず私はこれで動きました。もし、これで他のお方のお役に立てれば幸いです。

先述したとおり、私は PHP のテンプレートエンジンをつかっておりますが、同じような環境の方で、 js フレームワークの取り入れ方教えてエロい人!!

それでは。