свойство не инициализировано машинописный / javascript [дубликат]

Было бы трудно использовать tKinter или какой-либо другой графический интерфейс (например, wxPython или pyQT) для реализации прослушивателя или другого интерфейса для обнаружения нажатия клавиши.

Проверить эту тему .

0
задан geofu 17 December 2015 в 16:44
поделиться

2 ответа

Не в этом случае. Вы создаете DOM, создавая строку, а затем преобразовывая ее. Функция, которую вы создаете из строки, не будет иметь никакого отношения к области, в которой вы находитесь.

Вместо этого используйте правильный DOM.

this.domNode.innerHTML = ""; // Erase existing content
this.domNode.appendChild(document.createTextNode("Click "));
var button = document.createElement("button"); // Don't use links to the top fo the page for this
button.appendChild(document.createTextNode("Here"));
button.addEventListener("click", this.toggleLayer.bind(this));
this.domNode.appendChild(button);
this.domNode.appendChild(document.createTextNode(" to toggle layer"));
3
ответ дан Quentin 28 August 2018 в 06:46
поделиться

«Dojo way» для привязки контекста к функции используется с помощью lang.hitch:

hitch () возвращает функцию, которая будет выполнять заданную функцию в данном контексте.

https://dojotoolkit.org/reference-guide/1.10/dojo/_base/lang.html#hitch

Вот как это делается сделано с чистым Dojo:

require([
    'dojo/_base/lang',
    'dojo/dom',
    'dojo/dom-construct',
    'dojo/on'
], function(
    lang,
    dom,
    domConstruct,
    on
) {

    function onClick () {
        console.log('Got clicked context: ', this)
    }

    var link = domConstruct.create('a', {
        textContent: 'Click me!',
        href: '#'
    }, dom.byId('my-div'));

    on(link, 'click', lang.hitch(this, onClick));  

});
0
ответ дан iH8 28 August 2018 в 06:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: