( uid_17626 | 2023. 12. 20., sze – 16:50 )

 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
        }
    });
}