我试图尽可能少地更新您的代码。这是一个如何做我认为你正在尝试做的事情的例子。 http://jsfiddle.net/ugnNU/12/
有很多方法可以到达那里,我选择了这个,因为它接近你已经拥有的。
我添加了这个:
var childImage = $(this).children("div.tooltip");
if (childImage.attr('saveWidth') == ""){
//we haven't saved it's height yet
childImage.attr('saveWidth', childImage.width());
childImage.attr('saveHeight', childImage.height());
}
var hoverImgWidth = childImage.attr('saveWidth');
var finalHoverImagewidth = hoverImgWidth * 0.75;
var hoverImgHeight = childImage.attr('saveHeight');
var finalHoverImageWidth = hoverImgHeight * 0.75;
基本上它只是检查我们是否已经在属性中保存了“工具提示”图像高度。如果我们有,它只是使用该值。但如果不是,我们将高度或宽度保存在该属性中,然后使用它。
我也只选择 ("div.tooltip") 一次并将其保存在childImage
. 这样做的原因是每次执行此操作时$(selector)
jQuery 都必须查找该元素。如果你经常这样做,它会影响性能。因此,最好将选择器保存在局部变量中。