「WebデザイナーのためのjQuery入門」という書籍でjQueryの勉強をしています。
リンク先 http://gihyo.jp/book/2012/978-4-7741-4856-4
この書籍の中のロールオーバーボタンのスクリプトで質問があります。
以下のスクリプトは書籍に載っているスクリプトですが、これにより画像ボタンにポインタがのる・のらないでボタン画像が切り替わります。
---------------
$(function(){
$('.rollover').each(function(){
var a = $(this);
var img = a.find('img');
var src_off = img.attr('src');
var src_on = src_off.replace('_off','_on');
$('<img />').attr('src','src_on');
a.hover(function(){
img.attr('src',src_on);
},function(){
img.attr('src',src_off);
});
});
});
---------------
htmlは以下になります。※<body>内のみ抜粋
---------------
<body>
<div class="header">
<ul class="menu">
<li><a href="index.html" class="rollover"><img src="menu01_off.png" alt="Home"></a></li>
<li><a href="index.html" class="rollover"><img src="menu02_off.png" alt="Products"></a></li>
<li><a href="index.html" class="rollover"><img src="menu03_off.png" alt="Company"></a></li>
</ul>
</div>
</body>
---------------
質問したいのは、スクリプトの上から3行目の「var a = $(this);」です。
var a = $(this);
var img = a.find('img');
上記を、
var img = $(this).find('img');
とした場合、なぜか画像が切り替わりません。
どちらも同じような気がするのですが、不具合の原因が分かりません。
お分かりの方がいっらしゃいましたら、お手数ですがご回答よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
>上記を、
>var img = $(this).find('img');
>とした場合、なぜか画像が切り替わりません。
そうしてしまうと、aの値が設定されないから、下のほうにある
a.hover(function(){
が正常に動作しなくなる。
さっそくのご回答ありがとうございます。
たしかに!
hoverのところを見落としていました!
試しに以下のようにすると正常に動作しました。
お手数おかけしました。
$(function(){
$('.rollover').each(function(){
var img = $(this).find('img');
var src_off = img.attr('src');
var src_on = src_off.replace('_off','_on');
$('<img />').attr('src','src_on');
img.hover(function(){
img.attr('src',src_on);
},function(){
img.attr('src',src_off);
});
});
});
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- PHP 共通の処理をまとめる方法がわからないのでアドバイスお願いします。 1 2022/12/19 20:20
- HTML・CSS htmlについて質問です! 写真のように写真の部分が?になってしまいます。 ファイルもしっかり選べて 1 2023/07/09 21:17
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【OpenCV】二値画像後、白の部...
-
複数画像のランダム複数表示(...
-
JavaScriptで変更した属性の元...
-
MFCで画像を表示させているので...
-
色の変更
-
変化する休日に対応したい。
-
画像が表示でnull; this.src
-
javascriptテキストBOX色を元に...
-
textareaに画像を表示したい
-
MAX関数を使ってからLEFT JOIN...
-
JSPでの画像ファイル表示
-
jspでcssが読み込めない
-
C言語のポインタ表現
-
Slick.jsのオプションrtlについて
-
getElementByIdの戻り値がnull...
-
jQueryでサーバー上のファイル...
-
重なった画像にクリックイベン...
-
キャラクターがぴょこんと飛び...
-
初期状態でテーブルの非表示
-
JQuery UIで、表示したタブの中...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JavaScriptで変更した属性の元...
-
MFCで画像を表示させているので...
-
【OpenCV】二値画像後、白の部...
-
外部javascriptの重複を防ぐには
-
Vb.net2005での画像の合成方法
-
pythonで、tkinterとpillowの組...
-
html内にスライドショーを複数設置
-
ラズパイでno module named zbar
-
libjpegライブラリの使い方につ...
-
リンク先を動的に変更する
-
外部ファイルにしたら文字化け...
-
プログラムの上手な書き方は?
-
複数画像のランダム複数表示(...
-
error LNK2019 未解決のシンボ...
-
pythonのpygameでキャラクター...
-
imgボタンにfocusの当て方
-
OpenCVで固定枠で画像を操作す...
-
(javascript)HTMLで指定した...
-
<noscript>と</a>の関係
-
nodejsの画像表示は特別なこと...
おすすめ情報