0

私がここでしようとしているのはホバーです。div id magnify には小さなアニメーションがあります - アニメーションは機能していますが、一度に複数の div が機能していません。偶然これを間違った場合、少しのガイダンスを探しています。

jQuery

<script type="text/javascript">
$(document).ready(function(){
$("#project-holder").hover(function(){
    $(".client"+$(this).attr("client")).stop().animate({'margin-left': '130px', 'margin-top': '80px'}, 500);
  }, function(){
    $(".client"+$(this).attr("client")).stop().animate({'margin-left': '-200px'}, 500);
  });
});
</script>

div の例は次のとおりです。

<div id="project-holder" client="1">
  <div id="magnify" class="client1">
    <img src="magnify.png">
  </div>
</div>
4

2 に答える 2

3

代わりにクラスを使用するようにHTMLを変更してください。IDは一意であり、同じIDを複数回使用することはできません。

<div class="project-holder">
  <div class="magnify client">
    <img src="magnify.png">
  </div>
</div>

これで、JSをこれに変更でき、正常に機能するはずです。

$(document).ready(function(){
  $(".project-holder").hover(function(){
    $(this).find('.client').stop().animate({'margin-left': '130px', 'margin-top': '80px'}, 500);
  }, function(){
    $(this).find('.client').stop().animate({'margin-left': '-200px'}, 500);
  });
});
于 2012-12-10T22:09:19.053 に答える
2

$(this)セレクターはクラスや複数のIDではなく、一意の要素を参照するため、一度に複数の要素に対して機能することはありません。each()一度にすべてのdivを通過するために使用する必要があります。また、同じIDを2回使用しないでください。代わりにクラスを指定し、使用each()して各divを反復処理し、必要なコードを適用してください。

于 2012-12-10T22:07:18.687 に答える