2010-11-11 28 views
9

¿Cómo expongo los eventos a mis usuarios de complementos?Crear un complemento, exponer eventos


sé que debo utilizar:

$('#myPluginDiv').trigger('eventName', ["foo", "bar"]); 

para lanzar el evento pero estoy en busca de mejores prácticas que describen cómo declarar e invocar eventos en plugins.

Respuesta

0

Creo que se puede inspeccionar algunos de los plugins más utilizados y hacer sus propias suposiciones. No tenemos estándares en esto, solo convención de código.

Colorbox (fuente: https://github.com/jackmoore/colorbox/blob/master/jquery.colorbox.js) define un prefijo y algunas constantes para los nombres de los eventos. También tiene una función para activar y ejecutar las devoluciones de llamada.

jQuery UI (fuente: https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.widget.js) también tienen una función común en la clase Widget para activar eventos (uso: https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.dialog.js), pero se puede ver que los eventos están codificados en el centro de la fuente, en lugar de las constantes de la parte superior como en Colorbox.

Personalmente pienso, y lo hago en mis propios complementos, que la creación de constantes es mucho mejor si tiene que desencadenar muchos eventos, pero no es necesario si activa solo 2 o 3 eventos.

Una función auxiliar es imprescindible y debe ser parte de su plantilla.

Los nombres de los eventos que utilizo y veo a todos siguen el estándar CamelCase p. beforeClose.

Algunos abogan por el uso de un prefijo para eventos como el de Colorbox cbox_open o incluso click.myPlugin (ver: http://api.jquery.com/on/#event-names)

Conclusión: tratar de seguir las mejores prácticas y convenciones para la programación en general y esté pendiente de los mejores ejemplos por ahí .

-1

en el plugin de crear litereal objeto como

var plugin = { 
    show:function(){ 
// code for show() 
} 


}; 
+0

Preguntaba sobre las mejores prácticas para exponer y publicar eventos. Su código ni siquiera sigue el patrón de plugin jQuery. – jgauffin

Cuestiones relacionadas