if (typeof window[scriptem] === 'function') {
Ez kód már nem megy, amióta kiraktam egy külső js-be, amit az app.js telibe behúz.
Ezt írja: Uncaught TypeError: window[e.dataset.function] is not a function
A hibaüzenetet értem, de fogalmam sincs mi okozza. Ugye a function ugyanabban a modulban van, és ráadásul már importáltam.
Felépítés:
app.js
import { my_init, searchClickable, openLayer, closeLayer } from "./base.js"
window.addEventListener("load", (event) => {
my_init();
});
Minden a base.js-ben van, a függvények export taggel el vannak látva.
Kód ami csak félig megy:
function searchClickable() {
// MEGY
document.querySelectorAll('[data-url]').forEach((e) => {
e.addEventListener('click', () => {
getAjax({'link':e.dataset.url, 'title': e.dataset.title});
});
});
// NEM MEGY
document.querySelectorAll('[data-function]').forEach((e) => {
let scriptem = e.dataset.function
let paramétereim = Object
.keys(e.dataset)
.filter(key => key.startsWith('param'))
.map(key => e.dataset[key])
if (typeof window[scriptem] === 'function') {
window[scriptem].apply(undefined, paramétereim)
console.log('kész')
} else {
console.log(scriptem) // EZ FUT LE
}
});
}