2012-09-05 11 views
9

tengo algo de HTML y CSS que tiene este aspecto:espectáculo jQuery/ocultar al utilizar inline-block

<div id="TheContainer"> 
<div class="MyDivs"></div> 
<div class="MyDivs" id="ThisDiv"></div> 
</div> 

#TheContainer{text-align:center;} 
.MyDivs{margin:0px auto;display:inline-block;} 
#ThisDiv{display:none;} 

estoy usando inline-block y el margen: 0px magnético para que el MyDivs están centradas respecto TheContainer. El problema es que cuando hago esto:

$('#TheContainer').children().hide(); 
$('#ThisDiv').show(); 

continuación ThisDiv no está centrada más porque la pantalla cambia de cero a bloquear en vez de inline-block como lo tengo en la definición CSS.

Sé que podría escribir .css('display','none') y .css('display','inline-block') pero me preguntaba si había una manera de hacer este trabajo, manteniendo .show()

Gracias por sus sugerencias.

Respuesta

6

Se podría hacer una extensión de jQuery ...

$.fn.showInlineBlock = function() { 
    return this.css('display', 'inline-block'); 
}; 

Useage sería:

$('#whatever').showInlineBlock(); 

jsFiddle Demo

+0

bien, esto viene de nuevo a lo que estaba pensando. Gracias. – frenchie

+0

También creo que podría hacer lo mismo simplemente '$ .fn.show' para sobrescribir el jQuery predeterminado, ¡pero eso podría ser peligroso en ciertos cambios para bloquear en línea que no debería ser! –

+0

Vea también http://stackoverflow.com/questions/9260009/jquery-show-function-display-inline-block-how –

Cuestiones relacionadas