Domanda

Nel programma che sto scrivendo ho bisogno di essere in grado di accedere al nodo che è l'invio di un evento in javascript.

Ho avuto successo nell'utilizzo di this, come si riferisce all'oggetto in mio codice.In modo che il seguente non funziona.

var node = new node();

// Node Object
function node() {

// Create Sibling Node
this.createSibling = function() {
 var node = createNode();
 this.parentNode.appendChild(node); } }

Quando chiamo la funzione createNode() si assembla un link che è un evento onclcick collegato ad esso chiamato node.createSibling() e node.createChild() su un altro link.

Attualmente sto usando var NODETREE come il padre, perché io non so come ottenere il nodo iniziare cliccato.Questo mi trattiene dall'essere in grado di creare un nodo con i loro figli e fratelli;solo il nodo principale possono ottenere.

    var node = new node();

   // Node Object
   function node() {

   // Instance Veriables    
   var NODETREE = document.getElementById('node-tree');

   // Create Sibling Node
   this.createSibling = function() {
   var node = createNode();
   NODETREE.appendChild(node); } }

Come faccio ad accedere al nodo che ha il onclcick eventi collegati che si fa clic su di esso, senza dover creare un carico di codice, in modo che posso creare figli e i fratelli, per i nodi che ho creato e non solo il bagagliaio?

NOTA:

Ho bisogno di fare questo senza jQuery o di un altro framework.

È stato utile?

Soluzione

Quando un elemento ha un eventhandler l'Evento in oggetto è passato al gestore di eventi.Questo oggetto evento ha tra le altre cose, un riferimento al nodo che ha generato l'evento.

Quindi...

var createSibling = function(_event){
  var e = this; // the element this function is actually attached to
  var event_e = _event.target; //another way to get at the element clicked

  // do stuff
};

document.getElementById('myElement').onClick = createSibling;
document.getElementById('myElement').captureEvents(Event.CLICK);

Il problema è che i nomi di proprietà di cose diverse che differiscono cross browser - questo è un altro reson per usare un framework, perché essi implementare il rilevamento del browser ans implementazioni specifiche che è necessario fare se non si utilizza uno.

Vedere quirksmode.org per alcuni dettagli: http://www.quirksmode.org/js/introevents.html

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