Как инкапсулировать js файл для определенного модуля в nodejs? В общем есть модуль, допустим login.ejs + login.js.
Вопрос: как сделать так, чтобы область видимости login.js была только на уровне login.ejs?
Другими словами, как сделать так, чтобы если на странице есть 2 класса .button то вызов $('.button') находил бы только тот, который в login.ejs?
PS: .ejs - html файл.
Подробнее:
Если пользователь не зарегистрирован то я инклужу регистрацию:

login.ejs выглядит так:
Login


Password


Login
Тоесть я перед HTML добавляю еще и ссылку на скрипт с js обработчиком. И мне нужно чтобы этот js обработчик видел только эту форму (login.ejs), а весь остальной HTML на странице игнорировал.

21 Авг 2019 в 07:08
221 +1
0
Ответы
1

Для того чтобы инкапсулировать функциональность из login.js так, чтобы она применялась только к определенной области в login.ejs, можно воспользоваться модульностью и использованием анонимной функции (IIFE - Immediately Invoked Function Expression).

Вот пример того, как можно изменить содержимое login.js:

(function() {
// Код здесь будет доступен только в области видимости этой IIFE
// например, следующий код будет применяться только к элементам в login.ejs
$('.button').on('click', function() {
// код для обработки клика по кнопке
});
// Другие функции или переменные, объявленные здесь, также будут видны только внутри этой IIFE
})();

Теперь код в login.js будет работать только в области видимости, которая ограничена этой анонимной функцией. Таким образом, он не будет взаимодействовать с другими элементами на странице, за исключением тех, которые находятся в области login.ejs.

Примечание: Убедитесь, что $ объект JQuery доступен в вашем проекте, если вы используете его в login.js. Если он не был загружен до выполнения login.js, скрипт может не работать корректно.

20 Апр 2024 в 13:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир