2010-05-17 13 views
8

Estoy usando el siguiente código para agregar un hashtag al final de una url. De esa forma, alguien puede copiar esa url y llevarlos de regreso a esa página, con ciertos divs visibles.Detener comportamiento predeterminado de hashtag con jquery

$("a.live").click(function() { 
    window.location.hash = 'live'; 
    $("#live).slideDown(); 
}); 

En este ejemplo tengo un div llamado 'en vivo', que sería slideDown cuando se hace clic en un enlace, y '#live' añaden a la URL. Luego tengo un código que comprueba las etiquetas hash cuando la página se carga para mostrar los divs adecuados.

Mi problema es, ¿cómo evito que el navegador salte al div 'en vivo' una vez que se llame? No quiero que la página se desplace hacia abajo al div, solo quiere que se abra y se anexe el hashtag para que una persona pueda copiarlo y regresar a esa página mostrando ese div.

¿Algún consejo?

¡Gracias!

+0

Espera, ¿quieres decir cuando se hace clic en el enlace de arriba o cuando la página primero se carga con el hash presente en la URL? – karim79

Respuesta

8

Prueba esto:

$("a.live").click(function() { 
    window.location.hash = 'live'; 
    $("#live").slideDown(); 
    return false; // this will prevent default action 
}); 
8

Depende. Si desea evitar que cuando se hace clic en el ancla, utilice esto:

$("a.live").click(function(e) { 
    e.preventDefault(); // Prevents browsers default action 
    window.location.hash = 'live'; 
    $("#live").slideDown(); 
}); 

Si desea evitar su desplazamiento al hash cuando se carga la página, no estoy seguro de cómo le gustaría evitar eso.

2

Estoy suponiendo que tiene algo de código en el evento ready documento que se utiliza para abrir el div como usted dice? Si es así, le sugiero que agregue un prefijo a la identificación en el hash (como #_live) para que la identificación no se encuentre en el documento y, por lo tanto, impida que el navegador se desplace automáticamente a ese elemento y luego modifique su código para eliminarlo el prefijo cuando lo levantas

Estoy sugiriendo este 'truco' porque no creo que pueda evitar el comportamiento de ese navegador usando JavaScript, al menos seguramente no sea confiable para una solución de navegador cruzado.

Cuestiones relacionadas