collegamento con la pagina href = “#” scorre in cima quando viene utilizzato con jQuery slideToggle [duplicato]
Domanda
Eventuali duplicati:
Come faccio a interrompere una pagina web da scorrimento verso l'alto quando un link viene cliccato che fa scattare javascript?
Sto usando slideToggle di jQuery per mostrare / nascondere div. l'elemento che controlla lo scorrimento è un link di testo (una parte di testo all'interno di <\ a>) che ha href = "#", in modo che sarà simile a un collegamento (sottolineare, il cambiamento del cursore).
il problema è che quando il link viene cliccato, in aggiunta all'effetto scorrimento, la pagina scorre a inizio pagina.
Ho provato a sostituire href = "#" con href = "", ma che disabilita l'effetto div mostra / nascondi. Credo che avrei potuto aggiungere al tag Name = "nomeacaso" e quindi impostare il href a href = "# nomeacaso" ma io preferirei non usare i trucchi del genere.
Perché il href = "#" scorrendo la pagina per la sua cima?
tutte le idee sarebbe molto apprezzato
Soluzione
Diverse opzioni:
- Mettere
return false;
alla parte inferiore del vostro gestore di clic e il href wont essere seguito. - Modificare il href per
javascript:void(0);
-
Chiamata
preventDefault
sull'evento nel gestore:function( e ) { e.preventDefault(); // your event handling code }
Altri suggerimenti
È necessario aggiungere return false;
al gestore clic.
Ciò impedirà il browser di eseguire l'azione predefinita per lo scatto.
Gli altri ti hanno dato soluzioni. Ma per rispondere alla tua domanda specifica, #
si riferisce alla pagina corrente. E poiché l'interpretazione dei tag è quello di portare il top del tag in vista, facendo clic su un tag #
scorre fino alla cima della pagina corrente.
return false
o event.preventDefault()
sono quello che vi serve nel vostro gestore di eventi click per impedire l'azione di default che si verificano. Un elemento <a>
con un href
di #
farà sì che la finestra del browser per passare alla parte superiore della pagina, come l'azione di default