2009-06-10 11 views
7

Tengo un simple clic y un botón para mostrar, hacer clic y ocultar, pero cuando hago clic en él, la página se ancla en la parte superior de la página. ¿Hay alguna forma de prevenir esto? ¿De modo que cuando hago clic en el botón, me quedo en el mismo lugar en el navegador?jQuery clic me lleva a la parte superior de la página. Pero quiero quedarme donde estoy

Mi código es ..

$('#reportThis').hide(); 

$('#flagThis').click(function() { 
    $('#reportThis').show("slow"); 
}); 
$('#submitFlag').click(function() { 
    $('#reportThis').hide("slow"); 
}); 

Respuesta

17

Prueba esto:

$('#reportThis').hide(); 

$('#flagThis').click(function (evt) { 
     $('#reportThis').show("slow"); 
     evt.preventDefault(); 
}); 
$('#submitFlag').click(function (evt) { 
     $('#reportThis').hide("slow"); 
     evt.preventDefault(); 
}); 
+0

Wow gracias a katrillion !! – Trip

4

Probablemente está enlazando este hace clic en un una etiqueta < > que tiene una acción predeterminada. Para evitar esto, puedes usar otra etiqueta como <div> o se puede hacer esto:

$('#flagThis').click(function (event) { 
     $('#reportThis').show("slow"); 
     event.preventDefault(); 
}); 
+0

¿Por qué votar? ¿Qué está mal? –

+0

+1 para cancelar, nada malo –

4

Trate de volver false en la función click:

$('#reportThis').hide(); 

$('#flagThis').click(function() { 
     $('#reportThis').show("slow"); 
     return false; 
}); 
$('#submitFlag').click(function() { 
     $('#reportThis').hide("slow"); 
     return false; 
}); 
+0

¡Esto funciona muy bien también! ¡Gracias! – Trip

3

Cambiar los hipervínculos para que apunte a un inexistente ancla, como esto:

<a href="#IDontExist" id="flagThis">Flag</a> 

O, haga que sus manipuladores vuelven false, como este:

$('#reportThis').hide(); 

$('#flagThis').click(function() { 
    $('#reportThis').show("slow"); 
    return false; 
}); 
$('#submitFlag').click(function() { 
    $('#reportThis').hide("slow"); 
    return false; 
}); 
0

Si está utilizando un elemento <button> no se olvide de establecer el atributo type.

<button type="button">My Button</button> 

Algunos navegadores son predeterminados para enviar, lo que lo llevará de regreso al principio de su página.

Es donde me estaba yendo mal de todos modos y no vi nada aquí al respecto, así que pensé en compartir mis dos centavos para futuros lectores.

Cuestiones relacionadas