Ir para conteúdo

POWERED BY:

Arquivado

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

FabianoSouza

Marcar/desmarcar TR clicada e pegar o ID

Recommended Posts

O código abaixo recupera o ID da TR clicada e redireciona para uma página. Isso está funcionando.

		function get_row(){
		(function () {
			var columns = document.getElementsByTagName('td'),
				i,
				length,
				showTrId;
		
			showTrId = function () {
				var id_row, url_destino
				id_row = (this.parentNode.getAttribute('id'));

				if (id_row != null && id_row != "")
				{
				url_destino = (this.parentNode.getAttribute('destino'));
				window.location.href = (url_destino+"?id="+id_row);
				}
			};
		
			for (i = 0, length = columns.length; i < length; i += 1) {
				columns[i].addEventListener('click', showTrId, false);
			}
		}());
		}

O grid é assim

amostra-grid.jpg

 

Agora preciso ter o seguinte comportamento ao clicar.

 

|------------------------------------------------------------|

| |----------| |---------| |----------| ... |

TR | | TD-A | | TD-B | | TD-C | ... |

| |----------| |---------| |----------| ... |

|------------------------------------------------------------|

 

1) Ao clicar sobre a primeira TD, (seria a TD A), marca toda a linha (a TR) e pega o id da linha. Ao clicar novamente desmarca a linha.

Lembrando que a linha está com CSS. Então, ao desmarca-la queria que voltasse ao estilo que estava antes de ser marcada.

 

2) Ao clicar sobre as demais TDs ( B e C ) faz o mesmo que o código postado acima: pega o ID da TR e direciona para uma página.

 

Coloquei apenas três TD para ilustrar. Mas a quantidade não é fixa...

 

Queria contar com a ajuda dos colegas para tentar alterar o código acima com essa nova necessidade.

 

Agradeço desde já.

Brigadão!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu uso essa função em formulários

function mudacor(ref,cor){

ref.style.backgroundColor=cor;
}

e no formulário

onFocus="mudacor(this,'yellow')" onblur="mudacor(this,'white')"

 

Vê se a idéia ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valew, amigo.

Encontrei uma solução com a lógica mais ou menos assim.

1) Recupera o elemento pai do elemento clicado (a TD).

2) Pega o ID do elemento pai (a TR, no caso)

 

Usei algo como this.parentNode.id

Na verdade isso é algo bem simples. Mas eu nunca entendi bem essa salada de parentNode, childNodes, firstNode, cell, row. Sei o que isso tudo significa, mas nunca soube escrever corretamente a sintaxe e combinar essas coisas.

 

Resolvido!

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.