Ir para conteúdo

POWERED BY:

Arquivado

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

ScornInPC

[Resolvido] Problemas com função dinamica

Recommended Posts

Pessoal, tenho algo desse tipo

 

for(i=0; i<selectValues.length; i++)
{
	var divSelectHtml = document.createElement("div");
	divSelectHtml.onclick = function() 
	{
		alert(i);
	}
			
}

Porem, meu alert sempre retorna o ultimo valor de "i". todos que eu clico, da alert(3) por exemplo. Porem queria que desse alert(1), alert(2), alert(3).

 

Entenderam?

 

Como isso é possivel?

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode add um atributo ao obj

 

var divSelectHtml = document.createElement("div");
	divSelectHtml.count = i;
	divSelectHtml.onclick = function()
	{
		alert(this.count);
	}

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nossa, que show, ficou no grau que eu queria =D

Não sabia desses esquemas

 

Veja como ficou

 

for(i=0; i<selectValues.length; i++)
		{
			var divSelectHtml = document.createElement("div");
			divSelectHtml.className = "comboOut";
			divSelectHtml.style.cursor = "default";
			divSelectHtml.style.whiteSpace = "nowrap";
			divSelectHtml.onmouseover = function()
			{
				this.className = 'comboOver';
			};
			divSelectHtml.onmouseout = function()
			{
				this.className = 'comboOut';
			};
			divSelectHtml.indexNum = i;
			divSelectHtml.innerHTML = selectValues[i][1];
			divSelectHtml.onclick = function() 
			{
				areaSelect.onchange();
				iptHidden.value = selectValues[this.indexNum][0];
				divSelectVisible.innerHTML = '<img src="dot01.png" style="" /> ' + selectValues[this.indexNum][1];
				divSelectGroup.style.visibility = "hidden";
				divSelectGroup.style.display = "none";
			}
			
			divSelectGroup.appendChild(divSelectHtml); 		// Add Value
		}

Resumindo ele troca um <select> por um combo personalizado, e essa rotina troca os valores, ficou muito bom =)

 

Valeu

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.