le noeud de localisation avec eventListener en javascript méthode d'objet
-
20-09-2019 - |
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.
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