Ir para conteúdo

POWERED BY:

Arquivado

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

Naldinho Habeck

JQuery Load, "pegando" height apenas da primeira div

Recommended Posts

Estou com um problema ao tentar manipular o Height das divs exibidas no meu feed de noticias. elas não tem uma id fixa, pois a cada postagem a mesma div é replicada.

 

vou tentar exibir como o código está escrito, a manipulação, includes etc...

 

 

Arquivo: header.php. o arquivo header.php está "incluido" no arquivo main.php usando include php.

function LoadFeeds(){
	$('#news').html(
		'<div class="display_news" align="left" style="border: none;">' +
		'	<img src="imgconfig/loading.gif" style="width: 25px; float: left; margin: 53px 10px 0px 18px;" />' +
		'	<div style="margin: 59px 6px 0px 0px;">' +
		'		Carregando...' +
		'	</div>' +
		'</div>'
	).show();

	$("#news").load("classes/newsfeed.php", "limit=5", function(responseTxt, statusTxt, xhr){
		if(statusTxt == "success"){
			if($(".conteudo").height() > 91){
				$(".conteudo").css({"min-height":"91px"});
				$(".VerMais").html('.<br>.<br><a href="#">Ver Mais</a>').show();
			}else{
				$(".conteudo").css({"height":"18px"});
			}
		}
		if(statusTxt == "error"){
		
		}
	});
}

 

 

Arquivo main.php

 

<div id="news"></div>
<?php include('includes/header.php'); ?>
<script>LoadFeeds();</script>

 

Ao abrir o arquivo main.php, ele inclui o arquivo header.php, que contém a função LoadFeeds, chamada pelo mesmo. que por sua vez da um load "$("#news").load("classes/newsfeed.php", "limit=5" o arquivo "classes/newsfeed.php" faz todo o trabalho no banco de dados, e no final da pesquisa ele inclui o arquivo com a notícia

include('../includes/noticia.php');

 

este arquivo, faz a organização da noticia, com distancias, tipo de foto, ou texto, etc...

 

ou seja o arquivo noticia.php será exibido dentro da div #news, chamada no inicio.

 

até aí tudo bem, tudo funcionando... final feliz? NÃO!

 

o problema é que quando o texto da postagem é muito grande, eu quero diminuir o tamanho da div dele e adicionar um link dizendo Ver Mais, porém, não consigo pegar o height das divs, apenas o height da primeira div. e todas as outras divs recebem o mesmo valor desta.

 

ja tentei pela id, e classe.

 

a div com a classe ".conteudo" fica dentro do noticia.php, ela recebe o texto direto do banco de dados via php, veja.

 

        <div style="margin-left: 65px; margin-bottom: 10px;">
            <div class="conteudo" style="overflow: hidden; text-justify: auto; padding-right: 10px;">
				<?php echo nl2br($SuperFeed['textopostado']); ?>
            </div>
            <div class="VerMais" style="color: #060;"></div>
        </div>

e é essa danada que eu quero manipular o height, lembrando que ela é exibida dentro de um looping foreach na pesquisa do banco de dados, portanto cada noticia duplica a div, mas com um conteúdo diferente.

 

isso funcionava, antes de colocar o "load"

    if($(".conteudo").height() > 91){
        $(".conteudo").css({"min-height":"91px"});
        $(".VerMais").html('.<br>.<br><a href="#">Ver Mais</a>').show();
    }else{
        $(".conteudo").css({"height":"18px"});
    }

Agora não funciona mais... apenas com a primeira div, como já disse!

 

Não sei se me expressei bem.

Já pesquisei bastante, aqui no forum/google/outros foruns, e não encontrei a solução.

 

Agradeço desde já a quem possa me dar uma luz.

Compartilhar este post


Link para o post
Compartilhar em outros sites

[Resolvido]

 

Se por um acaso alguém passar pelo mesmo problema, fica ai uma forma de resolver.

 

Consegui resolver a minha maneira. usando a linguagem GambiarreX. :)

adicionei uma id para cada div. da seguinte forma

 

<div id="conteudo_<?php echo $array['id_post']; ?>">

 

assim cada div terá o nome conteudo_numero do post. ex: conteudo_3563

 

$(document).ready(function(){
if($("#conteudo_<?php echo $array['id_post']; ?>").height() > "91"){
$("#conteudo_<?php echo $array['id_post']; ?>").css({"height":"91px"});
$("#VerMais_<?php echo $array['id_post']; ?>").html('.<br>.<br><a href="javascript:void(0);">Ver Mais</a>').show();
}
});
como o php executa no servidor e antes do codigo javascript, a busca no banco de dados carregada pelo php será exibida antes de executar o javascript, sendo assim eu posso pegar o nome de cada div, sem problemas. e com isso a largura "height" de cada, manipulando-os como quiser!

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.