这与这个问题略有相关 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>
有任何想法吗?