2010-08-30 5 views
1

HTMLJquery/JS éléments cachés dimention/position - avec accordéon et AJAX :(

<div id='accordion'> 
    <h5>Header 1</h5> 
    <ul> 
     <li>section 1 content visible</li> 
     <li> 
      <div id=showhide> 
        <textarea id=usertext> 
        user entered text here,scalable 
        </textarea> 
      </div> 
     </li> 
    </ul> 
    <h5>Header 2</h5> 
    <ul> 
     <li>section 2 content 1</li> 
     <li>section 2 content X</li> 
    </ul> 

</div> 

#showhide peut être visible ou caché (pour économiser l'espace) Comment obtenir les dimensions de #usertext quelle que soit la section accordéon est élargi et si #showhide est visible ou effondrés?

jquery de .width() ne retourne pas la valeur pour les éléments cachés. Je pourrais potentiellement mis display:block, mais il y a beaucoup d'éléments sur la page et j'envoie dimensions async Post JS, je ne peux pas coordonner le moment de montrer des éléments et obtenir ses dimensions. Je ne veux pas aller à sync puisque la page va geler pendant longtemps.

Des suggestions?

Répondre

1

Peut-être que ce plugin pourrait vous aider: http://plugins.jquery.com/project/evenIfHidden

+0

Cela semble prometteur! Mais la façon dont cela fonctionne $ ('# box'). EvenIfHidden (fonction (élément) { alert (element.width()); }); Comment renvoyez-vous une valeur? – selytch

+0

Cela dépend de ce que vous voulez faire avec la valeur. Par exemple, si vous voulez le stocker dans une variable, vous remplacez alert (element.width()); avec varname = element.width(). –

+0

Je suis un peu nouveau à java, et si je veux faire quelque chose comme 'var dim = $ ('# case'). EvenIfHidden (fonction (élément) {return {w: element.width(), h : element.height(), t: element.top()}}) ' Parce que maintenant je reçois l'objet $ ('# box') dans le dim ... – selytch