Estoy tratando de activar el evento de clic en el hipervínculo con jQuery como se muestra a continuación. El hipervínculo no tiene ninguna identificación pero tiene cssclass
$(document).ready(function () { $('.cssbuttongo').trigger('click'); });
La función anterior no funciona. Este es el hipervínculo
<a href="hyperlinkurl" class="cssbuttongo">hyperlink anchor</a>
Respuestas:
No tengo pruebas fácticas para probar esto, pero ya me encontré con este problema. Parece que la activación de un evento click () en una
<a>
etiqueta no parece comportarse de la misma manera que esperaría con, digamos, un botón de entrada.La solución alternativa que empleé fue establecer la propiedad location.href en la ventana que hace que el navegador cargue el recurso de solicitud así:
$(document).ready(function() { var href = $('.cssbuttongo').attr('href'); window.location.href = href; //causes the browser to refresh and load the requested url }); });
Editar:
Haría un violín js, pero la naturaleza de la pregunta entremezclada con cómo jsfiddle usa un iframe para representar el código hace que no sea posible.
fuente
onclick
evento. Solo hazlo$('.cssbuttongo')[0].click()
para simular correctamente un clic en su totalidad.El método DOM nativo hace lo correcto:
$('.cssbuttongo')[0].click(); ^ Important!
Esto funciona independientemente de si
href
es una URL, un fragmento (por ejemplo#blah
) o incluso unjavascript:
.Tenga en cuenta que esto llama al
click
método DOM en lugar delclick
método jQuery (que es muy incompleto y se ignora por completohref
).fuente
$('.cssbuttongo').click(); // ignores href!
no garantiza que funcione. El último siempre funcionará, porque el uso de index [0] convertirá el objeto jQuery en un objeto JS normal, que es exactamente el mismo que usa un navegador. @Wei LiuAdemás de la gran respuesta de romkyns ... aquí hay documentación / ejemplos relevantes.
Los elementos DOM tienen un
.click()
método nativo .Documentación relevante de W3 .
Algunos ejemplos..
Puede acceder a un elemento DOM específico desde un objeto jQuery: (ejemplo)
$('a')[0].click();
Puede usar el
.get()
método para recuperar un elemento DOM de un objeto jQuery: (ejemplo)$('a').get(0).click();
Como era de esperar, puede seleccionar el elemento DOM y llamar al
.click()
método. (ejemplo)document.querySelector('a').click();
Vale la pena señalar que no se requiere jQuery para activar un
.click()
evento nativo .fuente
Activar un clic a través de JavaScript no abrirá un hipervínculo. Ésta es una medida de seguridad integrada en el navegador.
Sin embargo, consulte esta pregunta para obtener algunas soluciones.
fuente
[0]
es importante en tu violínSolo quiero que sepan que la respuesta aceptada no siempre funciona.
Aquí hay un ejemplo de que fallará.
Si
<href='/list'>
href = $('css_selector').attr('href') "/list" href = document.querySelector('css_selector').href "http://localhost/list"
o puede agregar el href que obtuvo de jQuery a esto
href = document.URL +$('css_selector').attr('href');
o jQuery way
href = $('css_selector').prop('href')
Finalmente, invocalo para cambiar la URL de la página actual del navegador.
window.location.href = href
o sacarlo usando
window.open(url)
Aquí hay un ejemplo en JSFiddle.
fuente
$('css_selector')[0].click()
? Funciona en este JsFiddle ...$('.cssbuttongo').click();
que no funcionará porque solo da el valor de href, en lugar de la URL de el navegador utiliza. Perdón por los comentarios engañosos.[0].click()
funciona, ¿por qué tu respuesta no lo menciona?location.href
acepta rutas relativas, por lo que el uso/list
antepondrá automáticamente el dominio actual. Entonces funciona.Me enfrentaba a un problema similar al hacer clic en un botón, en lugar de en un enlace. No tuvo éxito en los métodos .trigger ('click') o [0] .click (), y no sabía por qué. Por fin, lo siguiente me funcionó:
$('#elementid').mousedown();
fuente