Comment ajouter un gestionnaire d'événements sur tous les éléments div avec GWT? J'ai essayé le code suivant mais les alertes de fenêtre ne sont pas mis le feu vers le haut (mais « etvoila » classe est mis en place):GWT: Ajouter un gestionnaire d'événements sur tous les éléments div
private NodeList<Element> pageDIVElements;
public void initDiv() {
MyDIVEventHandler handler = new MyDIVEventHandler();
pageDIVElements = Document.get().getElementsByTagName("div");
for (int i = 0; i < pageDIVElements.getLength(); i++) {
Element elem = pageDIVElements.getItem(i);
elem.addClassName("etvoila");
com.google.gwt.user.client.Element castedElem = (com.google.gwt.user.client.Element) elem;
DOM.setEventListener(castedElem, handler);
}
class MyDIVEventHandler implements EventListener {
private Element divElement;
@Override
public void onBrowserEvent(Event event) {
Window.alert("Yeepee");
if (event.equals(Event.ONMOUSEOVER)) {
Window.alert("ONMOUSEOVER");
divElement = Element.as(((NativeEvent) event).getEventTarget());
divElement.setPropertyString("background-color", "#C6D4E6");
} else if (event.equals(Event.ONMOUSEOUT)) {
divElement = Element.as(((NativeEvent) event).getEventTarget());
divElement.setAttribute("background-color", "");
}else if (event.equals(Event.ONCLICK)) {
divElement = Element.as(((NativeEvent) event).getEventTarget());
divElement.setAttribute("background-color", "");
Window.alert("ONCLICK");
}
}
}
Quel est le problème dans cette méthode?
Comment utiliser votre solution dans le code? Je ne peux pas le faire fonctionner. – djondal
Ajoutez ce qui suit avant la ligne "DOM.setEventListener (castedElem ..." : DOM.sinkEvents (castedElem, Event.ONCLICK | Event.ONMOUSEOUT | Event.ONMOUSEOVER); –
Vous devez ajouter elem à com.google. gwt.user.client.Element –