Cómo activar un clic en un enlace usando jQuery
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">
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. :)
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!!!
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 click
en el elemento html subyacente, no en el objeto jQuery .
De nada googleers :)