acao Posted June 17, 2015 at 01:53 PM Report #584961 Posted June 17, 2015 at 01:53 PM (edited) 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 June 17, 2015 at 01:55 PM by acao
acao Posted June 17, 2015 at 09:13 PM Author Report #584995 Posted June 17, 2015 at 09:13 PM boas ninguém consegue dar uma dica do que poderá estar acontecer? cumps acao
HappyHippyHippo Posted June 17, 2015 at 09:59 PM Report #584999 Posted June 17, 2015 at 09:59 PM 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 Portugol Plus
acao Posted June 17, 2015 at 10:09 PM Author Report #585000 Posted June 17, 2015 at 10:09 PM 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
acao Posted June 17, 2015 at 10:22 PM Author Report #585001 Posted June 17, 2015 at 10:22 PM 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
HappyHippyHippo Posted June 17, 2015 at 10:41 PM Report #585002 Posted June 17, 2015 at 10:41 PM 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 Portugol Plus
acao Posted June 17, 2015 at 11:01 PM Author Report #585003 Posted June 17, 2015 at 11:01 PM (edited) 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 June 17, 2015 at 11:05 PM by acao
Solution acao Posted June 18, 2015 at 10:28 AM Author Solution Report #585028 Posted June 18, 2015 at 10:28 AM (edited) 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 June 18, 2015 at 10:29 AM by acao
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now