Quiero crear una etiqueta de anclaje que ejecute algo de JavaScript y luego proceda a ir a donde hreflo esté llevando. Invocar una función que ejecuta mi JavaScript y luego establece window.locationo top.locationen la hrefubicación no funciona para mí.
Entonces, imagina que tengo un elemento con id "Foo" en la página. Quiero crear un ancla similar a:
<a href="#Foo" onclick="runMyFunction(); return false;">Do it!</a>
Cuando se hace clic en esto, quiero ejecutar runMyFunction y luego saltar la página a #Foo(no causar una recarga, el uso top.locationharía que se recargara la página).
Sugerencias Estoy feliz de usar jQuery si puede ayudar aquí ...
                    
                        javascript
                                jquery
                                html
                                anchor
                                
                    
                    
                        psicotik
fuente
                
                fuente

return true;es la solución, pero también puedes llamarlocation.hash = '#Foo'. No recargará la página.Respuestas:
¿Solo en su
return truelugar?El valor de retorno del
onClickcódigo es lo que determina si la acción de clic inherente del enlace se procesa o no; regresarfalsesignifica que no se procesa, pero si regresatrue, el navegador procederá a procesarlo después de que su función regrese y vaya a la ancla.fuente
undefinedse considerara falso para estos fines.y
De esta manera, tendrá su función ejecutada Y seguirá el enlace Y seguirá el enlace exactamente después de que su función se haya ejecutado correctamente.
fuente
Si el enlace solo debe cambiar la ubicación si la función se ejecuta correctamente, entonces hágalo
onclick="return runMyFunction();"y en la función devolvería verdadero o falso.Si solo desea ejecutar la función y luego dejar que la etiqueta de anclaje haga su trabajo, simplemente elimine la
return falsedeclaración.Como nota al margen, probablemente debería usar un controlador de eventos en su lugar, ya que JS en línea no es una forma muy óptima de hacer las cosas.
fuente
Al hacer una estructura HTML limpia, puede usar esto.
fuente