Pregunta

En el programa que estoy escribiendo lo que necesito para poder acceder al nodo que está enviando un evento en javascript.

He tenido éxito en el uso de this, ya que se refiere al objeto en mi código. Por lo que el siguiente no funciona.

var node = new node();

// Node Object
function node() {

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

Cuando llamo a la función createNode() ensambla un enlace que tiene una onclcick caso que se le atribuye llama node.createSibling() y node.createChild() en un enlace diferente.

Actualmente estoy usando var NODETREE como padre porque soy no sé cómo sacar el nodo que es comenzar hecho clic. Esto me está guardando de ser capaz de crear nodo con sus propios hijos y hermanos; sólo el nodo principal puede obtenerlos.

    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); } }

¿Cómo se accede al nodo que tiene el onclcick evento adjunto que está siendo hecho clic, sin tener que crear una carga de código, por lo que puede crear hijos y hermanos de los nodos que he creado y no sólo el tronco

Nota:

Necesito hacer esto sin jQuery u otro marco.

¿Fue útil?

Solución

Cuando un elemento tiene un manejador de sucesos el objeto de evento se pasa al controlador de eventos. Este objeto de evento tiene entre otras cosas una referencia al nodo que ha activado el evento.

Así que ...

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);

El problema es que los nombres de propiedades para diferentes cosas son diferentes navegadores -. Este es otro reson utilizar un marco porque van a poner en práctica las implementaciones específicas de la detección del navegador ans que tendrá que hacer si no utiliza uno

Vea quirksmode.org para algunos detalles avanzados: http://www.quirksmode.org/ js / introevents.html

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top