0

jQuery が隠し要素の幅を計算しないことは誰もが知っています。右?これは jQuery 1.10 で変更されましたか?

このjsFiddleでは、非表示の LI の幅<li style="display:none;">a hidden li</li>が計算されます。どうしてこれなの?

また、最近の更新で動作が変更された場合、幅が計算されないようにするにはどうすればよいですか? 私は試した:

$('#theList li').each(function() {
    totalWidth += $(this).is(':visible').width();
});

しかし、それもうまくいきませんでした - それでも要素とその幅が返されました。

4

1 に答える 1

1

最初に要素が表示されているかどうかを確認してから、機能を実行することをお勧めします。

var totalWidth = 0;

$('#theList li').each(function() {
    if ($(this).is(":visible")){ // CHECK FIRST IF VISIBLE
    var $this = $(this);
    totalWidth += $this.width();

    $('#theListItems').append($this.text() + " ("  +$this.width() + " width)<br>");
    $('#totalWidth').html(totalWidth);
    }
});

Jsfiddle: http://jsfiddle.net/javascript/LQZB2/

于 2013-07-15T21:16:58.393 に答える