@OculusDaemon

Как вызвать калькулятор отдельно от модального окна?

Нужна помощь с инициализацией модального окна.
Есть сайт, на котором много модальных окон, чтобы не делать каждое окно, я сделал одно окно в которое, в зависимости от вызова, подставляется определенный контент.
Проблема вот в чем. В модальных окнах есть калькулятор, но после открытия модального окна он не работает. Как я понимаю, не работает по тому, что окно создается по клику, а до этого его еще не существует и калькулятор его не видит.
Все работает только тогда, если калькулятор вызвать вместе с модальным окном.
Вопрос: Как мне калькулятор вызвать отдельно от окна, вне функции клика.
P.S. JavaScript начал изучать недавно.
Пример: https://codepen.io/OculusDaemon/pen/aqjoxR?editors=1010
Скрин калькулятор prntscr.com/iihehy
5a8f362499a30813152305.png
  • Вопрос задан
  • 94 просмотра
Пригласить эксперта
Ответы на вопрос 2
twobomb
@twobomb
Я чето не понял, он что просто сразу должен вызываться без этого окна вот так?
Ответ написан
hahenty
@hahenty
('•')
Весь код пропитан innerHTML. Проблема действительно в том, что formInit() применяется для вновь создаваемого блока через innerHTML. Пара вариантов имеется.

Для работы событий через всплытие нужно привязывать обработчики на popup-окно, например:
$( '#popup' ).on( 'click', '.plus', function() {
// здесь я не помню, куда будет указывать this
} );

И для привязки данных с разных полей нужно их выбирать через контекст popup-окна.
https://codepen.io/anon/pen/jZpVXB?editors=1010
Тут пересчёт суммы придется вызывать при открытии окна, для этого нужно перекроить код ещё немного.

По-другому если, то нужно перемещать саму форму из скрытого блока, функцией append(). Но тогда функция инициализации для форм должна будет предварительно разделить кнопочки и поля ввода-вывода по группам, чтобы "плюс"-кнопка одной формы не наращивала значение всех сумм в формах. Тут можно применить цикличное применение некой единичной инициализации одной формы или в обработчиках событий определять "родительскую" форму кнопок и полей.
Ответ написан
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы