2012-02-06 7 views
5

En jQuery, podemos usar innerHeight para obtener la altura de un elemento (incluido el relleno pero no el borde).¿Cuál es el equivalente de Dojo de innerHeight de jQuery()?

$("selector").innerHeight(); 

¿Cómo puedo obtener el mismo valor por dojo?

Lo que mi solución es utilizar

dojo.contentBox() //get the height of content box 
dojo.style(node, "borderTopWidth") //get width of border-top 
dojo.style(node, "borderBottomWidth"). //get width of border-left 

¿Hay alguna manera fácil de hacerlo?

Respuesta

1

Lamentablemente, no creo que haya una manera más fácil de hacerlo.

usted tiene básicamente tres opciones:

dojo.contentBox(node) // excludes border, padding and margin 
dojo.position(node) // includes border and padding; excludes margin 
dojo.marginBox(node) // includes border, padding and margin 

lo tanto, usted tiene que hacer lo que usted sugiere. Use dojo.contentBox(), luego calcule por separado los anchos de borde superior e inferior.

Como alternativa, puede colocar un <div> dentro de un <div>, para que pueda establecer el borde en el div externo y mantener el relleno en el div interno. A continuación, podrá obtener la altura requerida llamando al dojo.position() para el div interno.

<div id="outer" style="border: solid #000 1px;"> 
    <div id="inner" style="height: 20px; padding: 2px;">.</div> 
</div> 
<script> 
    alert(dojo.position("inner").h) // 24 
</script> 
+0

Bueno, la posición puede obtener los datos reales como su solución, pero no puedo cambiar la estructura del html. por lo que el div interior no existe para mí y todos los atributos están definidos para ourside div ("# outer"), incluyen relleno de borde y blablabla. –

Cuestiones relacionadas