J'ai un document HTML. Dans ce document, il y a un élément (comme bouton comme, div, a) avec un identifiant. Je sais que je peux utiliser: pour trouver l'élément requis dans le fichier HTML. Comment puis-je ajouter un gestionnaire de clic à cela? Clickhandlers semble seulement être disponible sur la classe de boutons. p> merci p> p>
4 Réponses :
Si vous essayez d'ajouter un pour un pour un
Parfait! Vous avez été super utile. J'ai continué à essayer de faire comme un nouveau bouton (élément d'élément). Merci!
Vous pouvez également utiliser html.wrap () pour tout ce qui ne correspond pas à la touche / ancrage / étiquette grouper Jason mentionné. clickhandlerler code> à un
code> yo peut utiliser
anchor.wrap () code>
( Anchor Code> S n'a que
clicklistener code> s, pas
clickhandler code> S ... encore) p>
label.wrap () code>
( Label code> s ne sont que
suggestion: Essayez d'apprendre à utiliser UIBINDER (ajouté dans GWT 2.0).
Dans votre cas, vous auriez pu faire: p>
public class yourView extends Composite {
interface MyUiBinder extends UiBinder<LayoutPanel, yourView> {}
private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class);
@UiField Button btnName;
public yourView() {
initWidget(uiBinder.createAndBindUi(this));
}
@UiHandler("btnName")
void handleClick(ClickEvent e) {
//Do whatever
}
}
Cela fonctionne si l'interface utilisateur est construite dans GWT, mais sa question posait de la question de l'ajout de gestionnaires de clic (et d'autres fonctionnalités de GWT) sur HTML existant sur la page. S'il construisait toute la page dans GWT, cependant, ce serait certainement la voie à suivre.
Une autre suggestion - Utilisez GQuery. Il est facile de joindre un écouteur d'événement simple sur le DOM sans créer les éléments supplémentaires que les widgets GWT font souvent: voir ici pour plus: http://code.google.com/p/gwtquery/wiki/getingstarted#add_an_event_handler P> Il est dommage qu'il n'y ait pas plus de code GWT basé sur une amélioration progressive. IMHO, CSS / HTML Faites un excellent travail au design / Markup - c'est juste le JavaScript que je veux remplacer. p> p>
Faites-le simplement en définissant un auditeur d'événement.
Event.sinkEvents(e, Event.ONCLICK); Event.setEventListener(e, new EventListener() { @Override public void onBrowserEvent(Event event) { Window.alert("Clicked!"); } });
Deux options sont répertoriées ici: Stackoverflow.com/Questtions/2768961/...
Cela semble plutôt cher à mon goût. La solution ci-dessous est plus efficace. Merci d'avoir essayé d'aider!