Question

Dans le programme que je vous écris, je dois pouvoir accéder au nœud qui envoie un événement en javascript.

Je n'ai pas réussi à utiliser this, car il fait référence à l'objet dans mon code. Donc, ce qui suit ne fonctionne pas.

var node = new node();

// Node Object
function node() {

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

Quand j'appelle la fonction createNode() il assemble un lien qui a un onclcick d'événement qui lui a appelé node.createSibling() et node.createChild() sur un autre lien.

J'utilise actuellement var NODETREE comme parent parce que je suis ne sais pas comment le nœud qui commence cliqué. Cela me empêche de pouvoir créer le noeud avec leurs propres enfants et frères et sœurs; seul le nœud principal peut les obtenir.

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

Comment puis-je accéder au nœud qui a l'événement onclcick joint qui est clique dessus, sans avoir à créer une charge de code, donc je peux créer des enfants et des frères et sœurs pour les noeuds que je l'ai créé et non pas seulement le coffre?

NOTE :

Je dois le faire sans jQuery ou un autre cadre.

Était-ce utile?

La solution

Lorsqu'un élément a un gestionnaire d'événements de l'objet d'événement est transmis au gestionnaire d'événement. Cet objet événement a entre autres une référence au nœud qui a déclenché l'événement.

...

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

Le problème est le nom de propriété pour différentes choses diffèrent navigateur cross -. Ceci est une autre Reson d'utiliser un cadre parce qu'ils mettront en œuvre les implémentations spécifiques de détection du navigateur que vous devez faire si vous n'utilisez un

Voir quirksmode.org quelques détails avancés: http://www.quirksmode.org/ js / introevents.html

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