href = "# " Ir a la parte superior de la página - Prevenir? [duplicar]


Esta pregunta ya tiene una respuesta aquí:

Tengo una página con algunas funciones de jQuery. El HTML en la página se ve así:

<a href="#" class="service">Open</a>

Cuando hago clic en el botón Abrir, un panel oculto se desliza. El jQuery en sí funciona muy bien sin embargo cuando hago clic en el botón que también me lleva a la parte superior de la página.

Es este el comportamiento defualt y cómo puedo evitar que cada href="#" me lleve a la parte superior de la página.

Nota: Podría agregar id y decirle al href que dirija a ese ID. No quiero hacer eso por varias razones (incluida la adición de código innecesario).

Author: L84, 2012-10-22

4 answers

En su controlador de eventos, agregue e.preventDefault(); (suponiendo que e es el nombre de la variable que contiene el evento):

$('.service').click(function(e) {
    e.preventDefault();
});
 55
Author: icktoofay,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-21 23:02:36
<a href="#!" class="service">Open</a>
 61
Author: MyroslavN,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-10 09:55:46
<a href="#" onclick="return false;" class="service">Open</a>

O

$(document).ready(function()
{ 
   var a = $(".service");
   a.click(function()
   {

       return false;

   });
});

O

$(document).ready(function()
{ 
   var a = $(".service");
   a.click(function(e)
   {

       e.preventDefault();

   });
});

O

<a href="#" onclick="event.preventDefault();" class="service">Open</a>
 20
Author: Ryan M,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-06-26 17:45:39
$('service').click(function() {
<your code>
return false;
});

return false anula el comportamiento estándar de la etiqueta 'a' y evita que el navegador vuelva a la parte superior de la página cuando se hace clic.

 0
Author: Andreas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-11-29 06:53:16