Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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?
Sim, tranquilo, eu já estou jogando depois de tudo carregado.
E não, no console não aparece nada =(
Ah e os elementos vem do banco tbm.
teste:
alert($('.one-fouth').length);
$('.one-fouth').each(function(){
if($(this).find('p').width() > 135){
alert('teste');
}
});diga oq volta desse alert.Ta retornando "35".
Que é o total de elementos certo?
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.
Acho que é isso então, no segundo alert ta dando "0".
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.
Retorna 0px, e to usando o jquery 1.9
Testei no 1.10 e nada tbm =(
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) );
);Cara, desculpa a demora pra responder, eh que tive que entrar em outro projeto aqui.
Mas então, joguei oq vc mandou , mas não aparece nada, simplesmente some até o html.
E se jogar no console aparece esse erro
"TypeError: Cannot read property 'width' of null"
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 ?