Was mache ich falsch? Wenn ich das gleiche Element von Konsole und fügen Sie einen Klick Hörer wählen ... es funktioniert ... aber dieser Code funktioniert nichtOnClickListener funktioniert nicht [Javascript] [Elektron]
const Template = require('./Template')
const mustache = require('mustache')
const DOMHelper = require('./DOMHelper')
class SymbolDefiner extends Template {
constructor (key, data) {
super(key)
this._data = data
}
render() {
super.render(arguments)
const parent = this._parent
const props = this._props
const eventListener = this._listener
const addSymbol = DOMHelper.createElement('button.btn.btn-primary', parent)
const btnText = document.createTextNode('Add Symbol')
addSymbol.appendChild(btnText)
console.log(addSymbol) // this log succeeds
addSymbol.addEventListener('click', function() {
console.log('xx')
})
}
}
module.exports = SymbolDefiner
Die DOMHelper ist nur ein einfaches Funktionselement in das DOM hinzufügen sehr einfach durch die Verwendung 'div # id.class-1.class-2' Zeichenfolge. Hier ist der Code für DOMHelper ist:
const obj = {}
obj.createElement = function (selector, parent, props) {
const details = selector.split('#')
let eleName, eleId, classList
if (details.length > 1) {
// id is present
eleName = details[0]
const attribs = details[1].split('.')
eleId = attribs.shift()
classList = attribs
} else {
const attribs = details[0].split('.')
eleName = attribs.shift()
classList = attribs
}
const element = document.createElement(eleName)
element.setAttribute('id', eleId || '')
for (var i in classList) {
element.classList.add(classList[i])
}
if (props) {
for (var key in props) {
element.setAttribute(key, props[key])
}
}
if (parent) {
parent.appendChild(element)
}
return element
}
module.exports = obj
_I'm nicht 100% sicher zu sehen, aber ich habe noch nie ein ** ** klicken Magic String für den Fall, ich bin mir dessen bewusst * gesehen * onclick ** Sie können [die Liste hier für native Webbrowser-Ereignisse anzeigen] (https://www.w3schools.com/jsref/dom_obj_event.asp), es sei denn, ein Elektron hat einen ** Klick ** hinzugefügt, Sie sollten 'ddSymbol.addEventListener ändern ('click', function() {'nach' ddSymbol.addEventListener ('onclick', function() {'_ edit: nvm hat das Ereignis vergessen als die Zeichenkette magic. – Andrei
Ich habe gerade deinen Code per Webbrowser ausprobiert und Es funktioniert einwandfrei. Gibt es Konsolenfehler? – Andrei
Keine Konsolenfehler! :( – Navarjun