Jump to content
acao

[Resolvido] fechar banner clicando fora

Recommended Posts

acao

boa tarde,

necessito de ajuda em função javascript para fechar div (banner) utilizando o click fora da div e que é aberta utilizando o evento click javascript.

acontece que a função utilizada funciona apenas numa pag e deveria funcionar em todas as pag do site em xamp,

em site online não funciona.

nas paginas que não funciona o clik não entra na função, mas se clicar no botão do banner que chama a função fechar o banner funciona.

a função está em ficheiro .js e é chamado em todas as páginas do site.

ps: sempre tive dificuldade em por as funções js a funcionar o que me estará desta vez a acontecer?

função para fechar clicando fora da div

$(function(){
	$(document).click(function(e)
	{
			var condition =
					$(e.target).is('#banner_Pesq_Lojas')  // verifica se o elemento clicado é o #banner_Pesq_Lojas'
					|| $('#banner_Pesq_Lojas').has(e.target).size() // verifica se o elemento clicado está dentro de #cbanner_Pesq_Lojas'
					|| $(e.target).is('#func_Abre_BannerLojas') // verifica se o elemento é o clicado e o abre 
					|| $(e.target).is('#cboLojas');
			if ( condition ) {
					exit();
			} else {
					func_Fecha_BannerLojas();
			}
	});
});

funções para abrir e fechar

function func_Abre_BannerLojas(){
document.getElementById('banner_Pesq_Lojas').style.display = '';
document.getElementById('cboLojas').style.display = "none";
}
function func_Fecha_BannerLojas(){
document.getElementById('banner_Pesq_Lojas').style.display = "none";
document.getElementById('cboLojas').style.display = '';
}

cumps

acao

Edited by acao

Share this post


Link to post
Share on other sites
HappyHippyHippo

se o que interessa é o "banner_Pesq_Lojas", para que ser/anda no código o elemento "cboLojas" ?


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
acao

boas

se o que interessa é o "banner_Pesq_Lojas", para que ser/anda no código o elemento "cboLojas" ?

o elemento cbolojas é o elemento que abre o banner e era para clicando lá o banner não fechar.

sinceramente não sei o que está a prender o evento click das outras paginas.

alterei o evento de abertura para onfocus para usar esta função que já fecha outro banner e mesmo assim só fecha na tal página que é a pagina que tem o outro banner, talvez tenha a ajuda do outro banner .........não sei.

com esta alteração tenho o evento onfocus em abertura e depois o click a fechar mas teima em não fechar nas restantes paginas.

$(document).click(function(){

func_Fecha_BannerLojas();

});

não consigo apanhar o clik no ficheiro .js

cumps

acao

Share this post


Link to post
Share on other sites
acao

boas

tenho novos dados,

se tiver a função assim funciona nas outras páginas.

$(document).click(function(){
   // alert('teste');
   // fecha_BannerfichaTecnica();
    func_Fecha_BannerLojas();
});

mas na tal página funciona chamando as duas funções,

é errado chamar as duas funções dentro do click?

o que está acontecendo?

cumps

acao

Share this post


Link to post
Share on other sites
HappyHippyHippo

por muito que leia os teus posts, não consigo "pescar" nada do que estas a dizer.

consegues apresentar uma imagem com uma descrição clara e consisa do que está a acontecer assim do que é pretendido ?


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
acao

boas noites

já consegui encontrei a causa. disto tudo.

são estas duas funções:

$(document).click(function(){
   fecha_BannerfichaTecnica();

});

$(function(){
	$(document).click(function(e)
	{

			var condition =
					$(e.target).is('#banner_Pesq_Lojas')  // verifica se o elemento clicado é o #conteudo
					|| $('#banner_Pesq_Lojas').has(e.target).size() // verifica se o elemento clicado está dentro de #conteudo
					|| $(e.target).is('#func_Abre_BannerLojas') // verifica se o elemento é o clicado é o #abre-conteudo
					|| $(e.target).is('#cboLojas');
			if ( condition ) {
					exit();
			} else {
					func_Fecha_BannerLojas();
			}
	});
});

como chamo as duas funções (func_fecha_bannerLojas() e fecha_BannerfichaTecnica()) na ultima função apresentada, porque parece que só posso ter uma função apanhar o evento click e tenho que fechar os dois banner apenas numa função.

cumps

acao

Edited by acao

Share this post


Link to post
Share on other sites
acao

boas

ficou assim:

$(function(){
	$(document).click(function(e)
	{
		   // fecha_BannerfichaTecnica();
		   if(document.getElementById('banner_Pesq_Lojas').style.display === ''){
					var condition =
							$(e.target).is('#banner_Pesq_Lojas')  // verifica se o elemento clicado é o #banner
							|| $('#banner_Pesq_Lojas').has(e.target).size() // verifica se o elemento clicado está dentro de #banner
							|| $(e.target).is('#func_Abre_BannerLojas') // verifica se o elemento é o clicado e o #banner
							|| $(e.target).is('#cboLojas');
					if ( condition ) {
							exit();
					} else {
							func_Fecha_BannerLojas();
					}
			} else if (document.getElementById('banner_fichaTecnica').style.display === ''){
				var condicao =
							$(e.target).is('#banner_fichaTecnica')  // verifica se o elemento clicado é o #banner
							|| $('#banner_fichaTecnica').has(e.target).size(); // verifica se o elemento clicado está dentro de #banner
				if(condicao){					
						exit();
				} else {					  
						fecha_BannerfichaTecnica();					
				}
			}
	});
});

cumps

acao

Edited by acao

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.