1

まず、紛らわしいタイトルで申し訳ありません。jQueryでばかげた問題に直面しています。これが私のコードです:

$j('.parent').hover(function(){
     var newWidth = $j(this).find('img').length * 70; // I need number of images within parent and multiply it by 70
     $j(this).stop().animate({'width':newWidth},700); // <-- This does not work
}, function(){
     $j(this).stop().animate({'width':'70'},700); // Back to original width
});

しかし、アニメーションはありません。newWidth をアラートすると、正しい答えが得られます。値が newWidth に割り当てられている間、アニメーションが同時に実行されると思われるため、何も起こりません。変数の割り当てとアニメーションの実行の間に遅延を追加する必要がありますか? 他に効率的な方法はありますか?

更新: .parent の css はインラインであり、次のとおりです。

element.style {
background-color: #000000;
border-color: #CCCCCC;
border-radius: 0 0 0 0;
border-style: solid;
border-width: 0;
clear: both;
height: 75px;
overflow: hidden;
padding: 0;
position: relative;
width: 70px;
}
4

1 に答える 1

0

どの幅を変更しますか? .parent幅ですか、幅.parent imgですか?this要素の幅を変更するためです.parent。したがって、画像はアニメーション化されません。

そして、あなたのコードは問題なく動作します: http://jsfiddle.net/WouterJ/QvmBa/

于 2012-07-23T17:12:35.910 に答える