2010-11-29 24 views
5

¿cómo puedo enviar un evento en mi ventana listo? Por ejemplo en mi código tengo:jQuery dispatch event? Cómo

$("#info").click(function(){ 
// do stuff 
}); 

Tengo que llamar a esta función, la primera vez, sin tener un clic en #info, en la forma // hacer cosas.

+5

Recuerde hacer clic en la marca junto a la respuesta que le ayude. – cspolton

Respuesta

11

se puede utilizar el método de .trigger():

$('#info').trigger('click'); 

o simplemente:

$('#info').click(); 

que sería la misma.

+0

Evita el encadenamiento de eventos innecesarios. Si la aplicación es compleja, te ENORME eventualmente. Este evento burbujeará en todo el DOM y puede causar problemas con otras funcionalidades. Si solo desea ejecutar el método en el documento listo, simplemente ejecútelo en el documento listo. Si necesita darle un contexto, simplemente use apply. Voy a votar esto solo porque la respuesta a continuación está muerta. –

+0

Esta respuesta es genial ... upvote – stack

11

Una mejor manera podría ser hacer una función que haga las cosas necesarias, luego haga $(document).ready(myFunc); y $("#info").click(myFunc);.

+2

Big +1 Las personas parecen pensar que pueden abandonar el diseño adecuado solo porque es una aplicación web. –

+0

@ T.J. - si la función está escrita con el contexto siendo el botón, puede ser mucho más fácil y menos código para desencadenar el evento. –

+0

@Nick: si el código se debe ejecutar en múltiples contextos (no solo en respuesta a un clic de botón), entonces debería ser su propia función y * invocado * desde varias ubicaciones. No estoy del todo seguro de que usar 'clic' para activarlo sea" más fácil ", pero incluso si lo fuera, en mi humilde opinión no es una buena idea. (Se ha sabido que ** la gente ** no está de acuerdo conmigo, de vez en cuando. ;-)) –