Ir para conteúdo

POWERED BY:

Arquivado

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

Go Back

[Resolvido] Âncora

Recommended Posts

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. =\

Compartilhar este post


Link para o post
Compartilhar em outros sites

roda um event.preventDefault()

assim que o onclick for chamado

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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");	
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

??

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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 ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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:

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.