Cómo activar un clic en un enlace usando jQuery

Resuelto Patrioticcow asked hace 13 años • 12 respuestas

Tengo un enlace:

<ul id="titleee" class="gallery">
  <li>
    <a href="#inline" rel="prettyPhoto">Talent</a>
  </li>
</ul>

y estoy tratando de activarlo usando:

$(document).ready(function() {
  $('#titleee').find('a').trigger('click');
});

Pero no funciona.

También lo intenté:$('#titleee a').trigger('click');

Editar :

De hecho, necesito activar lo que sea que se llame aquí.<a href="#inline" rel="prettyPhoto">

Patrioticcow avatar Apr 28 '11 04:04 Patrioticcow
Aceptado

Si estás intentando activar un evento en el ancla, entonces el código que tienes funcionará. Recreé tu ejemplo en jsfiddle con un eventHandler agregado para que puedas ver que funciona:

$(document).on("click", "a", function(){
    $(this).text("It works!");
});

$(document).ready(function(){
    $("a").trigger("click");
});

¿Está intentando hacer que el usuario navegue hasta un determinado punto de la página web haciendo clic en el ancla, o está intentando activar eventos vinculados a él? ¿Quizás en realidad no ha vinculado correctamente el evento de clic al evento?

También esto:

$('#titleee').find('a').trigger('click');

es el equivalente a esto:

$('#titleee a').trigger('click');

No es necesario llamar a buscar. :)

Kit Sunde avatar Apr 27 '2011 22:04 Kit Sunde

Lo sentimos, pero el controlador de eventos realmente no es necesario. Lo que sí necesitas es otro elemento dentro de la etiqueta en el que hacer clic.

<a id="test1" href="javascript:alert('test1')">TEST1</a>
<a id="test2" href="javascript:alert('test2')"><span>TEST2</span></a>

jquery:

$('#test1').trigger('click'); // Nothing
$('#test2').find('span').trigger('click'); // Works
$('#test2 span').trigger('click'); // Also Works

Se trata de lo que estás haciendo clic y no es la etiqueta sino lo que contiene. Desafortunadamente, JQuery no parece reconocer el texto sin formato, pero sí lo reconoce JavaScript básico:

document.getElementById('test1').click(); // Works!

O accediendo al objeto jQuery como una matriz

$('#test1')[0].click(); // Works too!!!
Graham Hotchkiss avatar Jan 24 '2014 13:01 Graham Hotchkiss

Dado que esta pregunta ocupa el puesto número 1 en Google por "activar un clic en un <a>elemento" y ninguna respuesta menciona cómo se hace eso, así es como se hace:

$('#titleee a')[0].click();

Explicación: activa a clicken el elemento html subyacente, no en el objeto jQuery .

De nada googleers :)

Alex from Jitbit avatar Apr 26 '2019 10:04 Alex from Jitbit