Question

Je suis en train de déterminer si un clic se produit à l'intérieur d'un certain nœud. Mon idée pour ce faire est de prendre le noeud et la boucle sur l'ensemble de ses descendants, tester si chaque noeud est la cible d'événements de clic.

Je ne suis pas sûr de ce que la meilleure façon d'obtenir tous les descendants d'un noeud spécifié est dans YUI3. Je suis ouvert à ce faire en seulement JS plaine si c'est compliqué à en yui3. Je suis aussi ouvert à une autre approche si quelqu'un a une meilleure façon de le faire.

Merci d'avance pour l'aide.

Était-ce utile?

La solution

var isChild = wrapperNode.contains (targetNode);

http://developer.yahoo.com/yui/3/ api / Node.html # method_contains

Autres conseils

Qu'est-ce que vous voulez créer, sonne beaucoup comme la délégation de clic.

Je ne fais pas YUI, mais vous pouvez lire sur la délégation de l'événement dans YUI3 ici:

http://www.yuiblog.com/blog / 2009/11/13 / événement délégation-3 /

http://kickballcreative.com/yui/demos/event-delegation/

My current solution (in YUI3) just in case anyone has the same problem. Feel free to post improvements upon it.

   function isChild(targetNode, wrapperNode) {
        var descendants = wrapperNode.all('*');
        var counter = 0;
        descendants.each(function(node) {
            if(node == targetNode) {
                counter++;
            }
        });
        return (counter > 0) ? true : false;
    }

If I understand the situation, the node that you are interested in contains some nodes that might receive clicks. If such is the case, the click event will bubble up to the parent node, so listening for a click on that node should be enough.

Then again it might be something more complicated that you need to do, in which case, apologies if I misunderstood.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top