materializecss 1.0.0 повторно инициализировать после изменения dom с помощью jquery — ОШИБКА: Ошибка типа: Правая часть «instanceof» не может быть вызвана

#javascript #web #dom #materialize

Вопрос:

Хороший день,

У меня есть проект, в котором используется materializecss с jQuery. У меня есть дом, который уже заполнен материализованными элементами, там все работает замечательно.

Однако, как только я создаю «всплывающее окно», содержащее новые элементы DOM (например, указатель даты), они не работают. Согласно документации, я мог прочитать, что в начале выполняется функция M. AutoInit (), и поэтому элементы еще не инициализированы.

Как я могу гарантировать, что все элементы — всплывающие или нет — всегда работают?

Если я попытаюсь снова инициализировать селектор дат, я получу следующую ошибку:

материализуйте.мин. js:6 Ошибка типа не обнаружена: Правая часть «instanceof» не может быть вызвана

Вот как это работало для элементов, не включенных во всплывающее окно:

 $('.datepicker').datepicker(<options>);
 

Ответ №1:

Я нашел проблему. Внутри моего скрипта, в котором я создаю эти всплывающие окна, есть переменная с именем «Элемент». Это атрибут класса. Я хотел переопределить его, но без этого, потому что javascript гибок в этом. Проблема теперь заключалась именно в том, что materializecss тоже имеет переменную с именем «Элемент». Поэтому я изменил это и вызвал ошибку с $(".datepicker").datepicker(); помощью .