【发布时间】:2012-10-05 08:17:48
【问题描述】:
这与这个问题略有相关 Invoking a jQuery function after .each() has completed
但该解决方案似乎对我不起作用。
基本上我有一段 JavaScript 可以计算某些元素的宽度:
var totalWidth = 0;
$element.find('li').each(function () {
totalWidth += $(this).width();
});
在此之后我想使用宽度来设置另一个元素:
$element.width(totalWidth);
如果我附加调试器,它可以工作,但如果我只是运行它,它不会。这让我觉得宽度是在 .each() 完成之前设置的。
我尝试使用.promise() 来解决此问题,但似乎没有什么不同。
var totalWidth = 0;
$element.find('li').each(function () {
totalWidth += $(this).width();
});
$element.promise().done(function () {
$element.width(totalWidth);
});
这是我的 HTML
<div class="carousel">
<ul>
<li>
<img src="/Images/Travel2New/Adverts/advertHolder_1.png" />
</li>
<li>
<img src="/Images/Travel2New/Adverts/advertHolder_2.png" />
</li>
<li>
<img src="/Images/Travel2New/Adverts/advertHolder_3.png" />
</li>
<li>
<img src="/Images/Travel2New/Adverts/advertHolder_4.png" />
</li>
<li>
<img src="/Images/Travel2New/Adverts/advertHolder_5.png" />
</li>
</ul>
</div>
有什么想法吗?
【问题讨论】:
标签: jquery