Google Wave: ¿cómo lo hacen divs se puede hacer clic
-
29-09-2019 - |
Pregunta
A medida que nos enfrentamos a los problemas de rendimiento de GWT en una aplicación móvil Me asomé a código de Google Wave, ya que se desarrolla con GWT.
Yo pensaba que todos los botones que hay reproductores, pero si nos fijamos en el HTML generado con Firebug te ven ningún conjunto atributo onclick en divs se puede hacer clic. Me pregunto cómo lo logran tener un elemento que haga clic en cuestiones o eventos MouseDown y aparentemente no siendo ni un widget ni inyectados con el atributo onclick.
Ser capaz de crear tales componentes sin duda me lleve un paso más para optimizar el rendimiento.
Gracias. PS: wasnt google va a código de cliente de código abierto también. no han sido capaces de encontrarlo.
Solución
GWT cómo crear controladores dentro de un GWT Java aplicación:
public void anonClickHandlerExample() {
Button b = new Button("Click Me");
b.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
// handle the click event
}
});
}
Esto generará un elemento HTML y se unen a un controlador de clic a ella. Sin embargo, en la práctica esto tiene el mismo resultado que utilizar document.getElementById('element').onclick()
sobre un elemento existente en su página.
Otros consejos
Usted no tiene que poner un atributo onclick
en el HTML para hacer que tenga un controlador onclick. Este es un ejemplo muy sencillo:
<div id="mydiv">Regular old div</div>
A continuación, en la secuencia de comandos:
document.getElementById('mydiv').onclick = function() {
alert('hello!');
}
No se establezca la propiedad onclick directamente, se habría visto la luz en el código GWT o por medio de otra biblioteca de Javascript.
Se puede conectar funciones al evento onclick
uso de JavaScript. Aquí hay un ejemplo usando jQuery :
$(document).ready(function(){
$("#div-id").click(function(){
/* Do something */
});
});
Si está interesado en optimizar el rendimiento de alrededor de esto, es posible que necesite para investigar delegación de eventos, dependiendo de su situación.
Un evento de clic se genera para cada elemento DOM dentro del cuerpo. El evento se desplaza desde el cuerpo hacia abajo al elemento hecho clic (a menos que esté utilizando Internet Explorer), golpea el elemento se hace clic, y luego burbujas de copia de seguridad. El evento puede ser capturado, ya sea a través de atributos DOM elemento, controladores de eventos en el JavaScript o atributos en cualquiera de nivel superior (el burbujeo o la captura de eventos disparadores esto).
Me imagino que acaban de establecer en un archivo .js. Hace fácilmente con, por ejemplo jQuery con $ (document) ready () por ejemplo.