Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Gdias

[Resolvido] Pegar largura do DIV e repassar para FieldSet

Recommended Posts

Salve amigos,

 

Tenho um pepino nas mãos e se não resolver esse pepino vai parar em outro lugar (rs)

 

Seguinte, na aplicação do meu cliente temos um FieldSet que contem uma DIV sem medidas, pois ela se abre de acordo com o conteúdo. Até ai tudo de boa.

No fiedSet que envomve essa DIV, temos um <Legend> com a função de ocultar a div (abre e fecha).

Quando fechada, o FieldSet reduz seu tamanho para o tamanho do <Legend>, mas meu cliente quer que ele continue do tamanho do DIV que estava aberto

 

Fiz um código abre e fecha DIV e alterna a class do FieldSet - quando aberto a classe mostra borda completa, quando fecha apenas a borda superior é apresentada.

 

Acontece que no IE 7 não funciona...

 

Alguém pode dar uma forcinha?

 

Segue o código

 

function toggleLgd(legend) {
			var fs = legend.parentNode;

			var obj = legend.nextSibling;
			
			while (obj && obj.nodeName.toLowerCase() != "div") {
				obj = obj.nextSibling;
			}
			
			var w = obj.clientWidth;
	
									alert(" w "  +w);
	
			
			if (w == 0){
				w = fs.style.width;
			}
			
			fs.style.width = w + "px";
			
			alert("1 " + fs.style.width);	
					
			if (obj) {
				if (obj.style.display == "none") {
					obj.style.display = "";
				} else {
					obj.style.display = "none";
				}
			}
 		
			if (legend.className == "openFieldSet") {
				fs.style.width = w + "px";
				alert("2 " + fs.style.width);
				legend.className = "closedFieldSet";
				if (fs && fs.nodeName.toLowerCase() == "fieldset") {
					fs.className = "selectedFld";
				}

			} else {

				legend.className = "openFieldSet";	
				if (fs && fs.nodeName.toLowerCase() == "fieldset") {
					fs.className = "";				
				}
			}
			
		}

 

Desde já agradeço a força!

 

Abraços,

Gustavo

Compartilhar este post


Link para o post
Compartilhar em outros sites

fala velho! Firme?

 

Me diz uma coisa... você só quer "sumir" com a DIV mas manter o tamanho original dela?

Então tenta utilizar a propriedade VISIBLE ao invés de DISPLAY! Ele só vai deixar ela invisível e não escondê-la!

 

ABRAX!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Noooooooossaaaaaaaaa berkowitz!

 

Tinha me esquecido completamente a existência da diferença desses dois desgraçadinhos

Valeu véio!

Tá funcionando

 

 

CODE

 

function toggleLgd(legend) {

var fs = legend.parentNode;

 

var obj = legend.nextSibling;

 

while (obj && obj.nodeName.toLowerCase() != "div") {

obj = obj.nextSibling;

}

 

if (obj) {

if (obj.style.visibility == "hidden") {

obj.style.visibility = "visible";

} else {

obj.style.visibility == "hidden";

}

}

 

if (legend.className == "openFieldSet") {

legend.className = "closedFieldSet";

if (fs && fs.nodeName.toLowerCase() == "fieldset") {

fs.className = "selectedFld";

}

 

} else {

 

legend.className = "openFieldSet";

if (fs && fs.nodeName.toLowerCase() == "fieldset") {

fs.className = "";

}

}

 

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

AHUahuahuahuhuaUHa.... acontece véi! relax! :P

 

Parabéns ae! http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

ABRAX!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.