gooseNjuice
@gooseNjuice
JavaScript Fullstack

Почему я не могу вызвать функцию из другого файла .js?

Почему так работает (кнопка и скрипт в одном *.js)
<button id='submit' onClick={function (e) {
        e.preventDefault();
        var login = $('#login').val();
        var password = $('#password').val();
        console.log(login);
        console.log(password);
    }}>Log In</button>

А так - нет (кнопка и скрипт в разных *.js)?
import $ from 'jquery';
import './index'; //это вот *.js, который кнопку отрисовывает
function submit(e){
    e.preventDefault();
    var login = $('#login').val();
    var password = $('#password').val();
    console.log(login);
    console.log(password);
};
$('#submit').click(submit(e));

1) Когда начинаю вводить $('#... в списке id не виден id кнопки, ну и консоль при нажатии кнопки выдаёт
Content Security Policy: The page’s settings blocked the loading of a resource at self (“default-src localhost:3000”). Source: ;(function installGlobalHook(window)

2) Если 'e' передаю НЕ в анонимную функцию, а так, как в примере, появляется 'e' is not defined
  • Вопрос задан
  • 916 просмотров
Решения вопроса 1
edli007
@edli007
full stack, team lead
Потому что области видимости разные.

Судя по

import $ from 'jquery';

у вас тут вебпак, вобще вам рано такие вещи раз еще используете jquery, но раз уже взялись

В серверном жс каждый файл это отдельный модуль со своей собственной облатью видимости, а вебпак именно серверный жс и стараеться повторить. Вам надо импортировать и экспортировать свойства чтобы они стали доступны в других модулях.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Themezv
Js developer (React.js)
Что здесь вообще происходит.. зачем React и JQuery вместе?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы