ここで解決策を見つけたり見つけたりすることができないので、質問することにしました。私はプレーンな css/html ドロップダウン メニュー コードを持っています。これは動作し、問題なく見えますが、jquery を追加すると問題が発生します。以下の例でわかるように、同じツリー (ul.children li) 要素の幅の最大値を、このツリー内のすべての要素の幅として追加しようとしています。さて、属性が追加されましたが、 .childrenをすべてulに変更して要素範囲をグローバル化しようとしても、値は 0px のままです。要素の必要な最大幅の値ではなく、コードが 0px を出力するようにしているのは何ですか。前もって感謝します!
プレーンな HTML コードは次のとおりです。
<ul>
<li class="page_item page-item-2"><a href="">Sākumlapa</a></li>
<li class="page_item page-item-4"><a href="">Par mums</a>
<ul class="children">
<li class="page_item page-item-6"><a href="">Galerija</a></li>
</ul>
</li>
</ul>
そして、ここにjQueryコードがあります:
$(document).ready(function() {
var maxWidth = 0;
var elemWidth = 0;
$('.children li').each(function() {
elemWidth = parseInt($(this).css('width'));
if (parseInt($(this).css('width')) > maxWidth) {
maxWidth = elemWidth;
}
});
$('.children li').each(function() {
$(this).css('width', maxWidth + "px");
});
});
これを実行すると、children.li 要素に style 属性が追加されていることがわかりますが、要素の最大幅ではない 0px が含まれています。これはブラウザからのコピー&ペーストコードです。
<ul>
<li class="page_item page-item-2"><a href="http://localhost/wordpress/?page_id=2">Sākumlapa</a></li>
<li class="page_item page-item-4"><a href="http://localhost/wordpress/?page_id=4">Par mums</a>
<ul class="children">
<li class="page_item page-item-6" style="width: 0px;"><a href="http://localhost/wordpress/?page_id=6">Galerija</a></li>
</ul>
</li>
</ul>