Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Eu tenho um sistema com abas aqui...
Cada aba é chamada da seguinte forma:
<a href="#" onclick="opentab(1);">Empresa</a>
<a href="#" onclick="opentab(2);">Endereço</a>
<a href="#" onclick="opentab(3);">Telefones</a>
<a href="#" onclick="opentab(4);">Cobrança</a>
Quando eu clico nela, a página volta para o TOPO!
Por causa desse Sustenido, Jogo Da Velha, Chavinha, 4 Riscos sei lá.
Porque o Link fica assim: http://www.sistema.com.br/sistema/cadastro.php#
¬¬
Tem como fazer pra ele não voltar no topo ?
Pq as abas ficam lá embaixo. =\
Vou testar.
Nóóffááá Zenteee! Funcionou! :B
Pra que serve esse comando, é especificamente para isso ?
Obregado desdejá!
Opa Opa Opa!
Só funcionou no Chrome isso, porque eu estava testando no Chrome, agora foi testar Mozilla, não funfou.
=\
Resolvi
Na função do Onclick, eu coloquei mais um parametro.
onClick = opentab(1,event)
e no JS coloquei
function opentab(num, e){
e.preventDefault()
}
Me adorem!! =D
mostre com você fez.
no internet explorer o event é um objeto global, no firefox é disparado pelo evento, então deve ser recebido como parametro da função.
HTML
<a href="#" onclick="opentab(1,event);">Dados</a>
<a href="#" onclick="opentab(2,event);">Escopo</a>
JS
function opentab(num,e) {
e.preventDefault();
$("#content2 > div").hide();
$("#content2 > div:eq(" + (num-1) + ")").fadeIn();
$("#tabs > a").css("background", "url(images/tab.jpg) top left no-repeat");
$("#tabs > a:eq(" + (num-1) + ")").css("background", "url(images/tab-selected.jpg) top left no-repeat");
}ainda não funciona no ie ^_^
veja sobre o window.event teste se deve usar o objeto global, ou o parâmetro.
não entendi isso:
>
Me adorem!! =D
??
Pronto
Fiz assim:
if (e.preventDefault) e.preventDefault();
else e.returnValue = false;ahh uma coisa que lembrei agora, você tá usando jQuery ne?!
então digamos assim, 'feio', você misturar html com js, e usar o atributo onclick ^_^
se você tivesse usando jQuery da forma correta, não precisaria se preocupar com esse problema de incompatibilidade do objeto event
Mas o código das abas não fui eu que fiz... estou aprendendo JQuery agora...
O que eu poderia fazer no caso para otimizar o código ?
isso aqui:
onclick="opentab(1);"
levando em consideração as boas práticas de programação da linguagem javascript, é incorreto.
jQuery te facilita isso, você deveria fazer algo como:
$(document).ready(function(){
$("#abas a").click(function( e ){
e.preventDefault();//sem se preocupar com compatibilidade, pois o jQuery faz isso pra você
//segue o restante do script
});
});
entendeu ?
assim o objeto teria o evento atrelado no javascript, e não no html.
além de que:
-> essas abas não funcionam se o cara tiver com js desabilitado
-> poderia usar melhor o href
-> quem fez esse código, parece não conhecer o objeto this
fica como 'melhoria'. :lol:
roda um event.preventDefault()
assim que o onclick for chamado