Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как вызвать функцию и ее элементы из другого файла? (https://javascript.ru/forum/misc/83706-kak-vyzvat-funkciyu-i-ee-ehlementy-iz-drugogo-fajjla.html)

Alexander3928 18.02.2022 15:16

ksa,
Добавить тег button с текстом из функции и записать эту кнопку в элемент с классом container. Типо из проверки if в файле init.js. Там 2 кнопки и каждая вызывает разные функции, в зависимости на что кликнул. первая кнопка вызывает функцию functeSt1(), а вторая кнопка вызывает функцию functeSt2() в каждой из них разный текст. Забыл про них в начале, извиняюсь.

<header class="header">
    <ul class="header__menu">
      <button id="test1">1 btn</button>
      <button id="test2">2 btn<button/>
   </ul>
</header>
<main class="main">
    <div class="container"></div>
</main>
<script type="module" src="./init.js"></script>

voraa 18.02.2022 16:43

Ну напиши
function functeSt1() {
return `
        <button>TEST1</button>
        <button>TEST2</button>
        <button>TEST3</button>`;
}

function functeSt2() {
return `
           <button>TEST2</button>
            <button>TEST3</button>`;
}

voraa 18.02.2022 16:50

Цитата:

Сообщение от Alexander3928
Забыл эти тонкости с функциями, когда функция в другом файле

Тут совсем без разницы в одном файле или в разных...
Просто знание языка
Если нужно получить значение из функции, то у нее должен быть return, возвращающий это значение
Цитата:

Сообщение от Alexander3928
Можно узнать что я не так сделал?

function functeSt2() {
    const container = document.querySelector(".container");
 
    function html1() {
        const test2 = `
            <button>TEST2</button>
        `;
        container.innerHTML = test2;
        return container;
    }
 
    function html2() {
        const test3 = `
            <button>TEST3</button>
        `;
        container.innerHTML += test3;
        return container;
    }
}


html1 и html2 возвращают элемент DOM (при этом нигде не вызываются)
А functeSt2 не возвращает ничего.

ksa 18.02.2022 17:01

Цитата:

Сообщение от Alexander3928 (Сообщение 543827)
Можно узнать что я не так сделал?

function functeSt2() {
    const container = document.querySelector(".container");

    function html1() {
        const test2 = `
            <button>TEST2</button>
        `;
        container.innerHTML = test2;
        return container;
    }

    function html2() {
        const test3 = `
            <button>TEST3</button>
        `;
        container.innerHTML += test3;
        return container;
    }
}

Ты видно совсем не понимаешь что ты тут написал... :(
По факту ты написал функцию которая объявила еще две функции и все. :blink:


Часовой пояс GMT +3, время: 13:23.