SORU
24 EYLÜL 2009, PERŞEMBE


Görünür Olmayan Eleman Genişliği jQuery (Display: None)

Bir öğe görünür genişliği değil gibi jQuery gibi görünüyor() 0 değerini döndürür. Mantıklı, ama üst göstermeden önce üst genişliğini ayarlamak için tablo genişliği lazım.

Aşağıda belirtildiği gibi, üst eğim yapar ve pis bir görünüm üst metin var. Ana Tablo kadar geniş olması ve metni kaydırmak istiyorum.

<div id="parent">
    Text here ... Can get very long and skew the parent
    <table> ... </table>
    Text here too ... which is why I want to shrink the parent based on the table
</div>

CSS:

#parent
{
    display: none;
}

Javascript:

var tableWidth = $('#parent').children('table').outerWidth();
if (tableWidth > $('#parent').width())
{
    $('#parent').width() = tableWidth;
}

tableWidth her zaman görünür olmadığı için 0 (bana görünür zaman bir numara veriyor bu yana benim tahminim) verir. Bir şekilde üst görünür yapmadan tablonun genişliğini almak için var mı?

CEVAP
24 EYLÜL 2009, PERŞEMBE


Burada kullanılan bir hile. Bazı CSS özellikleri bir WordPress kullanmak elemanın görünür olduğunu düşünmemiz için ekleyerek içerir, ama aslında hala gizli.

var $table = $("#parent").children("table");
$table.css({ position: "absolute", visibility: "hidden", display: "block" });
var tableWidth = $table.outerWidth();
$table.css({ position: "", visibility: "", display: "" });

Bir kesmek biraz, ama benim için iyi iş gibi görünüyor.

GÜNCELLEME

Beri bu konuyu kapsayan blog post yazdım. Yukarıdaki yöntem kullanılır boş değerler için CSS özelliklerini sıfırlama olduğundan sorunlu olma potansiyeline sahiptir. Eğer değerleri olsaydı ne daha önce? Güncelleştirilmiş çözüm takas kullanır() jQuery bulundu yöntem kaynak kodu.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bratayley

    Bratayley

    30 Aralık 2010
  • GALERNAYA20

    GALERNAYA20

    19 NİSAN 2011
  • Numberphile

    Numberphile

    15 EYLÜL 2011