質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

985閲覧

【jQueryに関する質問】$.browser が使えなくなったので、その代わりに書いたものは問題ありませんか。

leoairen

総合スコア122

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2017/08/13 06:55

制作したHTMLのサイトの中のjQueryですが、$.browser が使えなくなったと伺いましたので、ネットで検索しましたらjQuery.supportが代わりに使えるということで書き換えてみたのですが、問題ありませんでしょうか。
お答えいただけたら幸いです。宜しくお願い致します。

元のコード

<script> $(function(){ $("body").append("<div id='glayLayer'></div><div id='overLayer'></div>"); $("#glayLayer").click(function(){ $(this).hide(); $("#overLayer").hide(); }); $("a.modal").click(function(){ $("#glayLayer").show(); $("#overLayer").show().html("<img src='"+$(this).attr("href")+"' />"); return false; }); if($.browser.msie && $.browser.version<7){ $(window).scroll(function(){ $("#glayLayer").css('top',$(document).scrollTop()); $("#overLayer").css('top',($(document).scrollTop()+$(window).height()/2) +"px"); }); } }); </script>

書き換えのコード

<script> $(function(){ $("body").append("<div id='glayLayer'></div><div id='overLayer'></div>"); $("#glayLayer").click(function(){ $(this).hide(); $("#overLayer").hide(); }); $("a.modal").click(function(){ $("#glayLayer").show(); $("#overLayer").show().html("<img src='"+$(this).attr("href")+"' />"); return false; }); if(jQuery.support && jQuery.support.version<7){ $(window).scroll(function(){ $("#glayLayer").css('top',$(document).scrollTop()); $("#overLayer").css('top',($(document).scrollTop()+$(window).height()/2) +"px"); }); } }); </script>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

$.browser.msie && $.browser.version<7とある通り、これはIE 6以下向けのコードです。まず確認すべきは、本当にIE 6からの対応が必要なのか、です。

そして、$.supportもjQuery 1.9でdeprecatedとなっています(公式リファレンス)。ブラウザのバージョンではなく、機能で切り分けを行うようにしましょう。

投稿2017/08/13 08:53

maisumakun

総合スコア145121

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

leoairen

2017/08/16 03:50

ご回答ありがとうございます。 jQueryに関してあまりにも初心者なので、意味もわからずに書いたところがあったかと思います。 そのため、「.version<7」の部分がIE 6以下を指すとも知りませんでした。 そもそも、元の構文も引っ張ってきたものでしたので、古かったせいか「$.browser」がコンソールに引っかかったため、修正する運びになりました。 maisumakunさんがおっしゃるように機能で切り分ける場合、純粋に「jQuery.support && jQuery.support.version<7」を「jQuery.support」にするという理解でしょうか?
maisumakun

2017/08/16 09:24

IE6対応が不要なら、「if($.browser)を含むブロックをバッサリ捨てる」というのが適切です。 この部分は、「position:fixed」の効かないブラウザ(IE6)で、それを再現させるためのものなので、チェックしたいなら「position:fixed」が適切に適用されるかチェックする、というようなコードとなります。
leoairen

2017/08/16 10:14

ご回答ありがとうございます。ではそのブロックを捨てるようにします。また、追加の解説も勉強になりました。大変助かりました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問