collegamento con la pagina href = “#” scorre in cima quando viene utilizzato con jQuery slideToggle [duplicato]

StackOverflow https://stackoverflow.com/questions/2024342

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

È stato utile?

Soluzione

Diverse opzioni:

  1. Mettere return false; alla parte inferiore del vostro gestore di clic e il href wont essere seguito.
  2. Modificare il href per javascript:void(0);
  3. 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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top