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 回答