Ir para conteúdo

POWERED BY:

Arquivado

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

JoseCarlosWeb

Função .text() executando sozinha

Recommended Posts

Olá a todos,

 

Essa semana peguei um sistema já pronto e em funcionamento, porém com um erro incomum.

No banco de dados há uma rotina que atualiza uma tabela com a hora atual.

No sistema eu tenho um javascript que envia uma solicitação JSON para um arquivo php a cada 500ms para pegar a hora da tabela e imprimir na tela. No sistema ainda tenho um contador regressivo que se inicia a X horas. Quando o contador regressivo chegar em 0 (zero), o conteudo da div do contador regressivo some e aparece a mensagem "Finalizado".

 

Acontece que na maioria das vezes a mensagem aparece por cima do contador regressivo. como se a função tivesse sendo chamada. O mais interessante é que o contador continua na tela e só quando o cronometro é zero que ela some. Mas a div da mensagem aparece do nada.

 

segue o código:

 


function atualizaLeilao(){
var leiloes = '';

$.ajaxSetup({ cache: false });
$('.itemLeiao').each(function () {
	var auctionId = $(this).attr('title');
	if (leiloes != '') leiloes = leiloes + ',';
	leiloes = leiloes + auctionId;
});

if(leiloes){
    $.ajax({
        url: 'update_information.php',
        dataType: 'json',
        type: 'POST',
        data: 'leiloes=' + leiloes,
        global: false,
        success: function (data) {
            var id_usuario = parseInt($('#idUsuario').text());
            $.each(data, function (j, item) {

              var leilao_id = item.leilao.id_leilao;
              var leilao_cronometro = item.leilao.tempo_leilao;
              var leilao_jogador_id = item.leilao.id_pessoa;
              var leilao_jogador_nome = item.leilao.usuario;
              var leilao_preco = "R$ " + item.leilao.preco;

                //alert(leilao_cronometro);
              var campo_preco = $('#leilao_' + leilao_id + ' .areaValor');
              var campo_cronometro = $('#leilao_' + leilao_id + ' .areaContagem');
              var campo_data = $('#leilao_' + leilao_id + ' .areaTempo');
              var campo_jogador_nome = $('#leilao_' + leilao_id + ' .usuario');
              var campo_jogador_nome_a = $('#leilao_' + leilao_id + ' .usuario a');
              var campo_btn_lance = $('#leilao_' + leilao_id + ' .btnLanceLeilao');
              var campo_btn_lance_a = $('#leilao_' + leilao_id + ' .btnLanceLeilao a');
              var campo_btn_lance_esp_a = $('#leilao_' + leilao_id + ' .espacamento .btnLance a');
              var campo_btn_lance_fut_a = $('#leilao_' + leilao_id + '.itemLeilaoFuturo .btnLance a');
		var quadro_leilao = $('#leilao_' + leilao_id);
	   var imagem_produto = $('#leilao_' + leilao_id + '.areaFoto');
			var imagem_produto_desabilitada = $('#leilao_' + leilao_id + '.areaFotoDesativada');
				$('#leilao_' + leilao_id + ' .btnLoginLeilao').css("display","block");
				$('#leilao_' + leilao_id + ' .btnLanceLeilao').css("display","block");
				$('#leilao_' + leilao_id + ' .areaContagem').css("display","block");




                // alterando na tela
                campo_jogador_nome_a.text(leilao_jogador_nome); // nome jogador ultimo lance

					                // alterando botao de lance
                if (id_usuario == leilao_jogador_id && id_usuario != NaN) {
                 campo_btn_lance_a.attr('style', 'background-image:none;left:-20px;position:relative;');
             campo_btn_lance_fut_a.attr('style', 'background-image:none;top:5px;left:-25px;position:relative;');
                  campo_btn_lance_a.html("<img src='" + base_url + "/img/layout/voce-esta-vencendo.png'>");
                    campo_btn_lance_esp_a.attr('style', 'margin-left:-10px;background:none;');
             campo_btn_lance_esp_a.html("<img src='" + base_url + "/img/layout/voce-esta-vencendo-pequeno.png'>");
                } else {
                  campo_btn_lance_a.removeAttr('style', 'background-image:none;left:-20px;position:relative;');
                    campo_btn_lance_a.attr('style', 'cursor:pointer');
                    campo_btn_lance_a.css('visibility', 'visible');
                    campo_btn_lance_a.html('Lance');
                }

                //alert(campo_preco.text());

                if (campo_preco.text() != leilao_preco) {
                    campo_preco.fadeIn().animate({ 'backgroundColor': 'red' }, 500);
                    campo_preco.text(leilao_preco);         // novo preco
                } else {
                    campo_preco.css('background-color', '');
                }



                if (leilao_cronometro > 0) {
					var arrematado=0;

                    var horas = Math.floor(leilao_cronometro / 3600) % 24;
                    var minutos = Math.floor(leilao_cronometro / 60) % 60;
                    var segundos = Math.floor(leilao_cronometro % 60);

                    if (horas < 10) horas = "0" + horas;
                    if (minutos < 10) minutos = "0" + minutos;
                    if (segundos < 10) segundos = "0" + segundos;

                    var hora_exibe = segundos;

                    if (leilao_cronometro <= 5) {
                        campo_cronometro.attr('style', 'color:#ec0000');
                    } else {
                        campo_cronometro.removeAttr('style', 'color:#ec0000');
                    }
                    if (hora_exibe != campo_cronometro.text()) {

                       //AKI
		   	$('#leilao_' + leilao_id + ' .areaFoto').css("display", "block"); 
			$('#leilao_' + leilao_id + ' .areaTotalDesconto').css("display", "block"); 
			$('#leilao_' + leilao_id + ' .areaFotoDesativada').css("display", "none");
					    $('#leilao_' + leilao_id).css('border', 'solid 3px #990000');  
						$('#leilao_' + leilao_id).css('margin', '7px');
						campo_data.css('visibility', 'hidden');
                        campo_cronometro.text(hora_exibe);
						campo_cronometro.css('color', '#91bf29');    
                    }



                }

                if (leilao_cronometro == 0) {


				$('#leilao_' + leilao_id + ' .btnLoginLeilao').css("display","none");
				$('#leilao_' + leilao_id + ' .btnLanceLeilao').css("display","none");
					$('#leilao_' + leilao_id + ' .areaContagem').css("display","none");

					$('#leilao_' + leilao_id + ' .areaTempo').css("display","none");

					$('#leilao_' + leilao_id + ' .areaFoto').css("display","block");
				$('#leilao_' + leilao_id + ' .areaTotalDesconto').css("display","block");
					$('#leilao_' + leilao_id + ' .areaFotoShow').css("display","none");
				$('#leilao_' + leilao_id + ' .areaFotoDesativada').css("display","none");
			$('#leilao_' + leilao_id + ' .areaFotoDesativadaNone').css("display","none");


					$('#leilao_' + leilao_id + ' .usuario').css("width","300px");
					$('#leilao_' + leilao_id + ' .usuario').css("left","0px");
					$('#leilao_' + leilao_id + ' .usuario').css("font-size","16px");
					$('#leilao_' + leilao_id + ' .usuario').css("top","395px");					


					$('#leilao_' + leilao_id + ' .idleilao a').css("color","#a60b00");
					$('#leilao_' + leilao_id + ' .idleilao').css("top","-10px");
					$('#leilao_' + leilao_id + ' .areaArrematado').text("Arrematado");


                }	                


            });
        }, error: function (XMLHttpRequest, textStatus, errorThrown) {

        }
    });         // fim ajax
   } // fim if
setTimeout('atualizaLeilao()',500);
}

$(document).ready(function() {
atualizaLeilao();
});

 

Eu Espero que tenha conseguido ser claro. Isso ja esta me deixando de cabelo branco.

Por favor me ajudem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

OMG q bagulho grande.. bom vamo lá...

 

Existem mais códigos ou só esse? nesse código não encontrei a msg finalizado ela está em alguma div já dentro do html? se sim esse elemento possui um id?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dentro do bloco:

 

if (leilao_cronometro == 0) {
.....
}

 

Estão as modificações nos objetos quando o cronometro for zero.

No entanto, todos os objetos obedecem certinho, somente o:

 

$('#leilao_' + leilao_id + ' .areaArrematado').text("Arrematado");

 

Que acontece do nada.

 

Obrigado por se disponibilizar em ajudar

 

Help-me.

Compartilhar este post


Link para o post
Compartilhar em outros sites

então..

a função não é chamada sozinha..

 

você deve analizar suas requisições e verificar os dados que estão sendo carregados e com isso solucionar seus problemas.

 

var leilao_id = item.leilao.id_leilao;

 

é quem define o campo a ser atualizado com a mensagem q está aparecendo.

 

sem dúvidas existe algum dado q está vindo junto da sua requisição e está setando o campo com a mensagem errada..

 

faz assim

 

bota um console.debug(item) no seu "each" e vá analizando as respostas no console do seu navegador.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha só, eu verifiquei e o id_leilao e o tempo_leilao está vindo como string com aspas exemplo "123". coloquei na condição o seguinte:

 

if (leilao_cronometro == "0") {
.....
}

 

Mas mesmo assim ainda aparece, o pior é que não é sempre que isso ocorre, as vezes passa 2 ou 3 dias e de repente acontece.

Vou continuar vendo. no final das contas, essa parada só acontece com essa div em especial, as demais que também recebem alterações dentro da mesma condição não acontece nada. Isso que me deixa curioso. Eu já troquei o nome, tentei mudar o caminho da div dentro no Jquery e nada. Tô pirando já. kkkk

 

Agradeço sua ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

e a classe .areaArrematado existe nos elementos onde ele está aparecendo ?

 

o js não parece ter nada errado verifica no html se derrepente não ta usando essa classe junto.. as vzs pode ser isso..

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.