Sembra che in jQuery quando un elemento non è larghezza visibile() restituisce 0. Ha un senso, ma ho bisogno di ottenere la larghezza di un tavolo al fine di imposta la larghezza del genitore prima di mostrare il genitore.jQuery - Ottenere larghezza di Element, quando non è visibile (display: none)
Come indicato di seguito, v'è il testo nel genitore, che rende lo skew genitore e guardare brutto. Voglio che il genitore sia largo solo quanto il tavolo e abbia il testo a capo.
<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 restituisce sempre 0 dal momento che non è visibile (è la mia ipotesi perché mi dà un numero quando visibile). C'è un modo per ottenere la larghezza della tabella senza rendere visibile il genitore?
che ha funzionato perfettamente, grazie! – Martin
Non farà in modo che il browser ridisegni la pagina due volte? Se è così, questa è una soluzione subottimale. – marcusklaas
@Tim Banks molto bello! In realtà ho scritto un'estensione simile. Quello che ho notato è un comportamento molto strano in ** Firefox **, width() restituisce 0, sia per il tuo che per il mio plugin entrambi. E per di più non influisce mai sul riempimento. http://jsfiddle.net/67cgB/. Sto passando il tempo più difficile a capire cos'altro poter fare per risolverlo. –