Я пытаюсь получить доступ к функции, используя this
для javascript onclick
. В настоящее время я могу только вернуть узел dom, используя this
. Возможно ли расширить область вне этого dom-узла? Я хотел бы назвать функцию toggleLayer
. Использование додзё 1.7+область действия 'this' для события onclick javascript
toggleLayer: function(){
console.log('toggled layer!!!');
},
_init: function() {
this.domNode.innerHTML = 'Click <a href="#"onclick="this.toggleLayer()">Here</a> to toggle layer';
}
EDIT - Вот решение, которое я придумал из Quentins ответа:
toggleLayer: function() {
console.log('toggled layer!!!');
},
_init: function() {
this.domNode.innerHTML = ''; // Erase existing content
this.domNode.appendChild(document.createTextNode('Click '));
var link = document.createElement('a');
link.appendChild(document.createTextNode('Here'));
link.href = "#";
link.addEventListener('click', this.toggleLayer.bind(this));
this.domNode.appendChild(link);
this.domNode.appendChild(document.createTextNode(' to toggle layer'));
}
Это возможно, но не 'onclick' атрибута. Используйте [addEventListener] (https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener) вместо этого, в сочетании с 'bind' – hindmost