Domanda

Sto cercando di determinare se si verifica un clic all'interno di un determinato nodo.La mia idea per fare questo è prendere il nodo ed eseguire il loop su tutti i suoi discendenti, verificando se ogni nodo è l'obiettivo degli eventi di clic.

Non sono sicuro di quale sia il modo migliore per ottenere tutti i discendenti di un nodo specificato in YUI3.Sono aperto a farlo in un semplice JS se è complicato in yui3.Sono anche aperto a un altro approccio se qualcuno ha un modo migliore per farlo.

Grazie in anticipo per l'aiuto.

È stato utile?

Soluzione

var isChild= wrapperNode.contains (targetNode);

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

Altri suggerimenti

Ciò che desideri creare, suona molto come la delega dei clic.

Non faccio YUI, ma puoi leggere informazioni sulla delega degli eventi in YUI3 qui:

http://www.yuiblog.com/blog/ 2009/11/13 / event-delegation-3 /

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

La mia soluzione attuale (in YUI3) nel caso qualcuno avesse lo stesso problema.Sentiti libero di pubblicare miglioramenti su di esso.

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

Se capisco la situazione, il nodo che ti interessa contiene alcuni nodi che potrebbero ricevere clic.In tal caso, l'evento clic verrà visualizzato in bolla fino al nodo padre, quindi l'ascolto di un clic su quel nodo dovrebbe essere sufficiente.

Poi di nuovo potrebbe essere qualcosa di più complicato che devi fare, nel qual caso, scusa se ho frainteso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top