jQueryで、特定要素「以外」の部分のクリックを判定するときに便利な、「skOuterClick」というプラグインがあります。

自分もログインフォームとか、クリックで開閉するタイプのナビゲーションを作る際に利用させてもらってますが、実はこれ、デモのとおりにやると一部のブラウザで上手く動作しないっぽいことが判明しました。

Firefoxでイベントをキャッチできない

例えば、これは今作ってるとあるサイトのナビゲーション部分のJS(の一部)なんですが、

こんな感じで作ると、Chromeとかでは問題なく動作するんですが、Firefoxではエラーがでて動いてくれません。「event is not definedみたいなこと言われちゃいます。

これに関してはまぁ、function の引数に event いれてあげたら動いてくれました。

IEでなんか変なエラーがでる

Firefoxに関しては上記の対応だけでOKだったんですが、これだとまだIEでうまく動かず、左下に黄色の三角に!マークが出てしまいます。

で、その場合はどうするかというと、

 ッて感じで、 event.stopPropagation(); の前に  event.preventDefault(); を入れるといいらしい。

つまり最終的には、

みたいにすれば大丈夫みたい。

IE8、IE10、IE11あたりはこれでいけました。他は確認できる環境がないのでわかんないですが、多分大丈夫…だと思います。

とりあえず過去に作ったサイトは修正してこないと。(今までは個人的なサイトでしか使ってなかったのが救いっちゃ救いか…)

jqueryで指定要素”以外”のクリックイベントを実装するouterClickプラグイン « kawama.jp

コメントする