Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# probleme de dispatcher

Envoyé par : ptitrene

Date : 22/04/2005 11:52

Bonjour,

j'essaie d'appliquer un listener pour observer la selection active sur un tree (mon listener est activé dès l'affichage de ma fenêtre)

addEventListener("select",selectligne,false);

et ma fonction :

function selectligne()
{
 var focused = document.commandDispatcher.focusedElement;
 alert(document
       .commandDispatcher
       .focusedElement
       .view
       .getCellText(document
                    .commandDispatcher
                    .focusedElement
                    .currentIndex,"concours-id"));
}

Ce listener ne fonctionne correctement qu'à partir de la seconde sélection ; au premier click, j'obtiens l'erreur suivante :

Erreur : document.commandDispatcher.focusedElement has no properties
Fichier Source : chrome://tests/content/tests.js
Ligne : 112

Connaissez-vous un remède à ce problème ?

Merci...

# Re: probleme de dispatcher

Envoyé par : Julien Appert

Date : 22/04/2005 15:35

Par pure déduction, je dirais que le focusedElement doit récupérer l'élement actuellement sélectionné (qui a donc le focus ;o). Peut être que le listener appelle ta fonction avant la mise à jour du focusElement ? Auquel cas aucun élément n'a encore le focus au moment de la première sélection. Pour que mon raisonnement soit correct, il faudrait que le résultat de ta fonction corresponde à l'élément précédemment sélectionné et non à l'actuel. Est-ce le cas ?

# Re: probleme de dispatcher

Envoyé par : ptitrene

Date : 22/04/2005 16:22

Effectivement, focusedElement est à Null dans DomInspector avant de cliquer... mais je ne comprends pas pourquoi dans ce cas je ne récupère pas à chaque fois l'élément précédemment sélectionné : au second clic, je tombe bien sur le bon élément !

# Re: probleme de dispatcher

Envoyé par : Julien Appert

Date : 22/04/2005 16:34

Encore une insondable bizarrerie...

regarde sur http://www.hevanet.com/acorbin/xul/top.x(..), dans la rubrique sur les trees. Sa méthode est très différente mais... fonctionne :o)

# Re: probleme de dispatcher

Envoyé par : ptitrene

Date : 22/04/2005 17:34

Merci beaucoup, cela fonctionne mieux... j'aurais tout de même préféré retrouver l'élément à l'origine de l'évènement. tant pis...

Peut-être que le focus est pris par une balise non affichable du tree la première fois ?

# Re: probleme de dispatcher

Envoyé par : Julien Appert

Date : 22/04/2005 18:03

attendons qu'un professionnel du focusElement nous apporte la solution ;o)

# Re: probleme de dispatcher

Envoyé par : ptitrene

Date : 26/04/2005 09:11

Mes premières recherches ne m'avaient pas amené sur les bons liens.

La syntaxe à utiliser pour retrouver l'élément à l'origine de l'évènement est "event.currentTarget" :o)

(l'objet event est passé en paramètre par défaut à tous les gestionnaires d'évènements)

# Re: probleme de dispatcher

Envoyé par : Julien Appert

Date : 26/04/2005 09:25

En effet c'est plus propre d'aller chercher directement l'élément à l'origine de l'événement qu'un simple résultat de l'événement qu'est le focus.

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.