Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помощь с задачкой по JS

Союз Здравых Сил Профи (517), на голосовании 10 месяцев назад
Надо написать функцию, которая создаст на странице 'окно', со стилями из предоставленного объекта option{}
В чём ошибка? Почему окно не отображается ни на странице, ни в элементах?
Дополнен 11 месяцев назад
Спасибо за помощь, забыл главное - я же создавал элемент не просто в документе, а в функции, и забыл её вызвать.
Ну и параллельно забыл, что надо дописывать 'px' , ведь js не будет переводить в стили обычные числа
Голосование за лучший ответ
Енот Шредингера Гуру (3123) 11 месяцев назад
notification.style .marginTop = option.top + 'px';
notification.style .marginLeft = option.left + 'px';
Союз Здравых СилПрофи (517) 11 месяцев назад
то есть ошибка из-за того что нет 'px'?
Союз Здравых СилПрофи (517) 11 месяцев назад
Сделал:
notification.style.marginTop = option.top + 'px'
notification.style.marginLeft = option.left + 'px'
Но элемент всё равно нигде не отображается, ни на стр. ни в консоли
Енот Шредингера Гуру (3123) document.body.append(notification)
Petr Muhurov Мыслитель (5922) 11 месяцев назад
ответ выше + нужно вызвать функцию после ее объявления
 showNotification(option) 
Павел Просветленный (25618) 11 месяцев назад
К вышенаписанному добавлю что classList содержит DOMTokenList а ты ему присваиваешь строку. Это свойство read-only и модифицируется методами add(), remove(), replace(), и toggle().Или пользуйся корректно или используй свойство className.
Союз Здравых СилПрофи (517) 11 месяцев назад
а нельзя записать класс через classList, но при этом не пользоваться его методами(add, toggle и тд) ? Это просто не принято или прям ошибка? Работает же также
Павел Просветленный (25618) Союз Здравых Сил, нельзя. Или ты делаешь так:
 element.classList.add('abcd'); 
Или так:
 element.className = 'abcd'; 
Второй случай перезаписывает полностью все классы элемента. Первый - добавляет к уже существующим.
Похожие вопросы