0

しばらく前に、jQueryを使用して非常に単純な画像スワップを行うために次のように設定しました。しかし、サイトを拡張する必要があるため、$(this)セレクターの実際の値を把握できません。$('。galleryli img')になると思いましたが、そうではないようです。このコードを見てからしばらく経ちましたが、完全に迷子になりました。

$('.gallery li img').hover(function() {
    var $gallery = $('.gallery li img').parents('.gallery');
    var cur_img = $(this).attr('src').replace('thumb/', '');
    $('.main-img', $gallery).attr('src', cur_img);
});​

ギャラリーを設定するためのより良い手段は必要ありません。私が持っているものはうまく機能します(コメントはいつものようにありがたいですが)与えられた状況での$(this)の値を理解する必要があります。

4

5 に答える 5

3

$(this)は、あなたが話している現在のコンテキストです。

つまり、 img、つまり、ホバーされている現在の画像です。

console.log($(this))を試して、再確認してください

于 2012-09-27T20:14:44.117 に答える
2

jQueryの(これ)は単なる自己参照ではありませんか?つまり、基本的に、「現在選択されている、または焦点を当てているものは何ですか?」(申し訳ありませんが、コメントする方法がわかりません。代わりにコメントします。)

コードを見ると、現在の画像のソースがプレフィックス付きのパス「thumb/」に置き換えられているように見えます。

于 2012-09-27T20:15:49.603 に答える
1

$(this)このコードでは、ホバーされているimgタグを参照しています。

于 2012-09-27T20:14:27.987 に答える
1

ちょっとした補足として、$(this)は実際に現在参照されている要素ですが、これはその要素のjQueryラッパーであり、すべてのjQueryのメソッドにアクセスできるラッパーです。また、実際のDOM要素を参照する「this」もあります。

例:画像を選択する場合$('img');

$(this)は$('img')です

これは<img src="example/" alt="example">

jQueryのメソッドと一緒に使用するには$(this)が必要であり、html要素をそのままフェッチするには'this'(一重引用符は無視)が必要です。

それがお役に立てば幸いです。JS / jQueryでは、これをよく理解することが重要です。そうしないと、JSの世界をさらに掘り下げることはかなり不可能になります。

于 2012-09-27T20:51:32.913 に答える
0

を追加console.log('this', $(this));してから、コンソールをチェックして値の詳細を確認できます:)

于 2012-09-27T20:14:28.380 に答える