Ir para conteúdo

POWERED BY:

Arquivado

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

Jonathan Cutrim Lacerda

Each não funciona

Recommended Posts

Eae galera, blz?

Então essa função

$('.one-fouth').each(function(){

	if($(this).find('p').width() > 135){	
	  alert('teste');
	}	
});
	

Se eu jogo no console do firefox, rola tranquilo, mas se eu coloco na meu arquivo js, não funciona.
Não sei pq, alguém poderia me dar uma força?

Compartilhar este post


Link para o post
Compartilhar em outros sites

vc precisa chamar essa função ai depois dos elementos html existirem.

e fique atento também, se vc tiver criando esses elementos dinâmicamente.

 

no console de erros aparece algo ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

teste:

alert($('.one-fouth').length);
$('.one-fouth').each(function(){


	if($(this).find('p').width() > 135){	
	  alert('teste');
	}	
});
diga oq volta desse alert.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Perfeito, então está encontrando os elementos corretamente.

 

Agora:

$firstFouth = $('.one-fouth').eq(0);
alert($firstFouth.html());
alert($firstFouth.find('p').width());

isso vai pegar o primeiro elemento .one-fouth, e achar o parágrafo dele, e retornar a largura.

Só tem mais 2 lugares onde o erro pode estar agora.

 

Ou não tem parágrafo filho de .one-fouth, ou a largura desse parágrafo ou não pode ser lida, ou é menor que 135.

Compartilhar este post


Link para o post
Compartilhar em outros sites

blz, vamos para outro teste:

$firstFouth = $('.one-fouth').eq(0);
alert($firstFouth.find('p').css('width'));

se não voltar oq vc espera, então atualize a versão do teu jQuery.

Depois volte e diga se resolveu, ou se ainda não.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok, ou esse elemento não tem largura explicitamente declarada, ou ele tá sofrendo um repaint q tá atrapalhando pegar a largura dele.

 

vamos tentar com getComputedStyle

function getWidth( el )
{
	if( window.getComputedStyle )
		return document.defaultView.getComputedStyle(el, null).width;
	else if( el.currentStyle )
		return el.currentStyle['width'];
}

alert(
   getWidth( $('.one-fouth').eq(0) );
);

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.