0

これはjQueryコードです:

$("#web").hover(
  function () {
    $(this).css({
             'background-color': '#ecf5fb',
             'cursor': 'pointer',
             'border': '1px solid #378ac4'
           })
           .children("a").children("img").attr("src", "1.png")
           .end().children("p").css("opacity", "1.0");

           $('#commentweb').stop(true, true).fadeIn();
  }, 
  function () {
    $(this).css({
             'background-color': '#e8e3e3',
             'border': '1px solid grey'
             })
             .children("a").children("img").attr("src", "2.png")
             .end().children("p").css("opacity", "0.5");

             $('#commentweb').stop(true, true).fadeOut();
  }
);

問題は、他のすべてが機能しているのに、不透明度が変更されないことです。しかし、このコードの代わりに私が書いた場合

$(this).css({
         'background-color': '#ecf5fb',
     'cursor': 'pointer',
     'border': '1px solid #378ac4'
       })
       .children("a").children("img").attr("src", "1.png");
$(this).children("p").css("opacity", "1.0");

できます。なぜこうなった?

これがフィドルです:http://jsfiddle.net/mMB3F/6/

4

2 に答える 2

2

元の選択に戻りたい場合は.end()、チェーンで子を 2 回呼び出すのと同じように、2 回呼び出す必要があります。

$("#web").hover(
  function () {
    $(this).css({
             'background-color': '#ecf5fb',
             'cursor': 'pointer',
             'border': '1px solid #378ac4'
           })
           .children("a").children("img").attr("src", "1.png")
           .end().end().children("p").css("opacity", "1.0");

           $('#commentweb').stop(true, true).fadeIn();
  }, 
  function () {
    $(this).css({
             'background-color': '#e8e3e3',
             'border': '1px solid grey'
             })
             .children("a").children("img").attr("src", "2.png")
             .end().end().children("p").css("opacity", "0.5");

             $('#commentweb').stop(true, true).fadeOut();
  }
);

http://jsfiddle.net/mMB3F/8/

于 2012-08-26T08:18:08.687 に答える
1

元の jquery オブジェクトに戻したい場合は、そこに追加の .end() を追加する必要があります - 各フィルタリング アクションは新しい jquery オブジェクトをスタックに置きます - .end() への各呼び出しは最後のものを「ポップ」しますスタックから。更新されたフィドルは次のとおりです。http://jsfiddle.net/mMB3F/7/

于 2012-08-26T08:18:00.997 に答える