Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.06.2021, 00:00
Аспирант
Отправить личное сообщение для Alexander3928 Посмотреть профиль Найти все сообщения от Alexander3928
 
Регистрация: 19.05.2021
Сообщений: 36

Как объявить функцию в другой функции
Есть событие клика для всех кнопок:
<div id="buttons"> 
  <button class="buttonClass">Click me</button>
  <button class="buttonClass">Click me</button>
  <button class="buttonClass">Click me</button>
</div>


<script>
function buttList(root) {
  document.getElementById('buttons')
    .addEventListener('click', event => { 
      if (event.target.className === 'buttonClass') { 
        console.log('Click!');
      }
    });
}
</script>


И есть функция test. В ней какой нибудь контент и я хочу объявить функцию buttList в ней, если к примеру эта функция buttList в другом файле. Как мне указать чтобы эта функция работала внутри функции test и не выдавала ошибку, что функция пустая. Как нужно записывать, объявлять функцию внутри другой функции?

function test(root) {
 const box = document.CreateElement("div");
 box.classList.add("box");
 const box2 = document.CreateElement("div");
 box2.classList.add("box2");
 const box3 = document.CreateElement("div");
 box3.classList.add("box3");

 buttList ();
}

Последний раз редактировалось Alexander3928, 16.06.2021 в 00:04.
Ответить с цитированием
  #2 (permalink)  
Старый 16.06.2021, 07:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 30,976

Alexander3928,
https://learn.javascript.ru/modules
Ответить с цитированием
  #3 (permalink)  
Старый 16.06.2021, 07:35
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 1,272

Сообщение от Alexander3928
и я хочу объявить функцию buttList в ней
Объявить или вызвать?
В примере вы вызываете эту функцию
Сообщение от Alexander3928
и не выдавала ошибку, что функция пустая
Что за ошибка такая?
А функция test где находится?
Ответить с цитированием
  #4 (permalink)  
Старый 16.06.2021, 07:39
Аспирант
Отправить личное сообщение для Alexander3928 Посмотреть профиль Найти все сообщения от Alexander3928
 
Регистрация: 19.05.2021
Сообщений: 36

Да вызвать, привык просто так. Test не важно где находится, это просто пример. Важно как внутри неё вызвать другую функцию чтобы она работала
Ответить с цитированием
  #5 (permalink)  
Старый 16.06.2021, 08:19
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 1,272

Сообщение от Alexander3928
Test не важно где находится
Если не работает, значит важно.
Любую функцию, которая находится в области видимости можно вызвать откуда угодно без всяких проблем.

И объявление функции должно быть обработано до ее вызова
Ответить с цитированием
  #6 (permalink)  
Старый 16.06.2021, 08:58
Аспирант
Отправить личное сообщение для Alexander3928 Посмотреть профиль Найти все сообщения от Alexander3928
 
Регистрация: 19.05.2021
Сообщений: 36

HTML
<div id="buttons">
        <button class="buttonClass">Click me</button>
        <button class="buttonClass">Click me</button>
        <button class="buttonClass">Click me</button>
    </div>


В index.js файл script.js
import './script.js';

P.S. я собираю вебпаком поэтому index.js финальный файл и в нем script.js, а в script.js все другие файла javascript

В файле script.js находится test.js
import './test.js';


В файле test,js я хочу вызвать функцию buttList.js
import {buttList} from "./buttList.js";

function test(root) {

    buttList();
    
}


А в файле buttList.js у меня записанно событие клика
function buttList(root) {

    document.getElementById("buttons").addEventListener("click", (event) => {
        if(event.target.className === "buttonClass") {
            console.log("Click")
        }
    });
    
export {buttList}
}


Да я тупонул ошибки не будет, но если я кликаю на кнопки мне в консоль не выводит "Click".

Последний раз редактировалось Alexander3928, 16.06.2021 в 09:00.
Ответить с цитированием
  #7 (permalink)  
Старый 16.06.2021, 09:12
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 1,272

А функция test где вызывается?
Ответить с цитированием
  #8 (permalink)  
Старый 16.06.2021, 09:12
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 13,319

Сообщение от Alexander3928
ошибки не будет
Значит подключение и использование правильное...

Сообщение от Alexander3928
но если я кликаю на кнопки мне в консоль не выводит "Click"
Возможно, на момент работы скрипта, тех элементов просто нет на странице...
Ответить с цитированием
  #9 (permalink)  
Старый 16.06.2021, 09:35
Аспирант
Отправить личное сообщение для Alexander3928 Посмотреть профиль Найти все сообщения от Alexander3928
 
Регистрация: 19.05.2021
Сообщений: 36

В файле test.js а сам test.js в файле script.js. Я весь путь для этих файлов вверху написал

Последний раз редактировалось Alexander3928, 16.06.2021 в 09:49.
Ответить с цитированием
  #10 (permalink)  
Старый 16.06.2021, 09:42
Аспирант
Отправить личное сообщение для Alexander3928 Посмотреть профиль Найти все сообщения от Alexander3928
 
Регистрация: 19.05.2021
Сообщений: 36

Сообщение от ksa Посмотреть сообщение
Возможно, на момент работы скрипта, тех элементов просто нет на странице...
Они если на странице.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как по событию click function запустить lightbox функцию? cheizer jQuery 0 04.01.2018 23:09
Как в функции объявить вызов других функций, еще не определенных? lonleystranger Общие вопросы Javascript 7 26.11.2013 09:16
Как вызвать eval в контексте другой функции для доступа к ее локальным переменным? Почемучкин Общие вопросы Javascript 8 29.10.2012 20:31
Остановить функцию внутри другой функции sliv Общие вопросы Javascript 5 07.10.2012 17:07
Проверить данные в функции, которая работает с другой функцией. Andrej_2 Общие вопросы Javascript 5 27.09.2012 21:42