Ir para conteúdo

POWERED BY:

Arquivado

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

Willian Antunes

Menu não sobe por causa de contador.

Recommended Posts

Olá a todos!

Fiz o uso de contadores para saber quando o menu está aberto ou não, fazendo ele subir (slideUp) caso contador%2 seja verdadeiro e se o elemento que surgiu por uma consulta em Ajax exista, só que quando eu clico em outro e volto para o menu anterior e tento fecha-lo clicando na barra dele o contador fica par então retorna como false fazendo o menu não fechar gerando o problema, qual seria o melhor jeito de resolver, deixando uma div para cada conteúdo carregado em Ajax?

 

Ande está escrito Ajax funciona assim, carrega o conteúdo na div #refeicoestopfive, para cada categoria tem uma div independente, logo a #refeicoestopfive serve como pai para elas.

 

Segue a baixo o código com 2 menus apenas, tem 5 no total:

 

cont_cm = 3
cont_bg = 3
cont_br = 3
cont_np = 3
cont_cp = 3
$(".botaoref h1 a").click(function(){
		link = $(this).attr("href")
		// Começo Cafe da manha
		if(link == "cafedamanha"){
			cont_cm++
			if(document.getElementById("cardapiocafedamanha") && cont_cm%2 == true){
				$("#refeicoestopfive").slideUp("slow")
			}else{
                             script ajax                             
			}
		return false
		} // Fim Cafe da Manha	
		// Começo Burger
		if(link == "burger"){
			cont_bg++
			if(document.getElementById("cardapioburger") && cont_bg%2 == true){
				$("#refeicoestopfive").slideUp("slow")
			}else{
                             script ajax
			} 
		return false
		} // Fim Burger
		// Começo Beirute
		if(link == "beirute"){
			cont_br++
			if(document.getElementById("cardapiobeirute") && cont_br%2 == true){
				$("#refeicoestopfive").slideUp("slow")
			}else{
                             script ajax
			} 
		return false
		} // Fim Beirute
		// Começo Nossos Pratos
		if(link == "nossospratos"){
			cont_np++
			if(document.getElementById("cardapionossospratos") && cont_np%2 == true){
				$("#refeicoestopfive").slideUp("slow")
			}else{
                             script ajax
			} 
		return false
		} // Fim Nossos Pratos
		// Começo Chopp e Pesticos
		if(link == "chopppesticos"){
			cont_cp++
			if(document.getElementById("cardapioshopppesticos") && cont_cp%2 == true){
				$("#refeicoestopfive").slideUp("slow")
			}else{
                             script ajax
			} 
		return false
		} // Fim Nossos Pratos
		
	}) // Fim função click para o ajax

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, acho que nao precisa de um contador pra saber se ta aberto ou nao

 

se tu quer saber se um elemento ta escondido por exemplo, checa se o element.style.display == 'none'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não funcionou, olha como ficou:

 

if(document.getElementById("cardapiocafedamanha").style.display == "none"){
               $("#refeicoestopfive").slideUp("slow")
}

Também tentei assim e nada:

 

if($("#cardapiocafedamanha").css("display", "none")){
               $("#refeicoestopfive").slideUp("slow")
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Shwa, da erro pois como ele é verificado primeiro e não está carregado pelo Ajax na memória. Só funciona desta maneira:

 

if(document.getElementById("cardapiocafedamanha")){
          if(document.getElementById("cardapiocafedamanha").style.display == "block"){
              $("#refeicoestopfive").slideUp("slow")
          }
}

Verifica se o elemento existe, como não existe de começo ele vai pro else e executa a consulta em Ajax, então quando clico de novo vai pro If e não funciona, a div com o id refeicoestopfive não fecha!

 

O que eu fiz foi o seguinte, criei uma div para cada categoria no html para poder ter um controle maior, só que por exemplo, se eu clicar em 1, o outro não fecha, segue:

 

$(document).ready(function(){
	$(".botaoref h1 a").click(function(){
		link = $(this).attr("href")
		// Começo Cafe da manha
		if(link == "cafedamanha"){
			if(document.getElementById("refeicoestopfive").style.display == "block"){
				$("#refeicoestopfive").slideUp("slow")
			}else{
				$.ajax({method: "get", url: "refeicoes.php", data: "pg="+link,
					beforeSend: function(){
						$("#carregando").slideDown("slow")},
					complete: function(){
						$("#carregando").slideUp("slow")},
					success: function(html){
						$("#refeicoestopfive").html(html).slideDown("slow")
					}
				}) // Fim Ajax cm
			}
		return false
		} // Fim Cafe da Manha	
		// Começo Burger
		if(link == "burger"){
			if(document.getElementById("refeicoestopfive2").style.display == "block"){
				$("#refeicoestopfive2").slideUp("slow")
			}else{
				$.ajax({method: "get", url: "refeicoes.php", data: "pg="+link,
					beforeSend: function(){
						$("#carregando").slideDown("slow")},
					complete: function(){
						$("#carregando").slideUp("slow")},
					success: function(html){
						$("#refeicoestopfive2").html(html).slideDown("slow")
					}
				}) // Fim Ajax cm
			} 
		return false
		} // Fim Burger
		// Começo Beirute
		if(link == "beirute"){
			if(document.getElementById("refeicoestopfive3").style.display == "block"){
				$("#refeicoestopfive3").slideUp("slow")
			}else{
				$.ajax({method: "get", url: "refeicoes.php", data: "pg="+link,
					beforeSend: function(){
						$("#carregando").slideDown("slow")},
					complete: function(){
						$("#carregando").slideUp("slow")},
					success: function(html){
						$("#refeicoestopfive3").html(html).slideDown("slow")
					}
				}) // Fim Ajax cm
			} 
		return false
		} // Fim Beirute
		// Começo Nossos Pratos
		if(link == "nossospratos"){
			if(document.getElementById("refeicoestopfive4").style.display == "block"){
				$("#refeicoestopfive4").slideUp("slow")
			}else{
				$.ajax({method: "get", url: "refeicoes.php", data: "pg="+link,
					beforeSend: function(){
						$("#carregando").slideDown("slow")},
					complete: function(){
						$("#carregando").slideUp("slow")},
					success: function(html){
						$("#refeicoestopfive4").html(html).slideDown("slow")
					}
				}) // Fim Ajax cm
			} 
		return false
		} // Fim Nossos Pratos
		// Começo Chopp e Pesticos
		if(link == "chopppesticos"){
			if(document.getElementById("refeicoestopfive5").style.display == "block"){
				$("#refeicoestopfive5").slideUp("slow")
			}else{
				$.ajax({method: "get", url: "refeicoes.php", data: "pg="+link,
					beforeSend: function(){
						$("#carregando").slideDown("slow")},
					complete: function(){
						$("#carregando").slideUp("slow")},
					success: function(html){
						$("#refeicoestopfive5").html(html).slideDown("slow")
					}
				}) // Fim Ajax cm
			} 
		return false
		} // Fim Nossos Pratos
		
	}) // Fim função click para o ajax
	
	$("#mtnewsletter").click(function a(){
		$("#email").css("border", "2px solid yellow")
	})
})

Thiago Retondar, vai ter mta informação em cada div carregada pelo Ajax o que inviabiliza o dropDown, e também tem que ser animado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem, como é jQuery, vou mover o tópico para o fórum correto para que tenha melhor suporte.

 

Tópico movido:

 

JavaScript / DHTML http://forum.imasters.com.br/public/style_emoticons/default/seta.gif JavaScript / DHTML » JavaScript Frameworks

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

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.