これは、この質問に少し関連してい ます。.each()が完了した後にjQuery関数を呼び出す
しかし、解決策は私にはまったくうまくいかないようです。
基本的に、いくつかの要素の幅を計算する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>
何か案は?