Size: a a a

JavaScript Noobs — сообщество новичков

2021 May 09

РД

Руслан Даниз... in JavaScript Noobs — сообщество новичков
Такой вопрос. У меня почти что нет опыта коммерческой разработки. И я дошел до 50 урока в пути самурая 1.0. Три четыре дня тому назад взял проект на заказ с дедлайном 48 часов. За это время реализовал около 70 процентов работы и не успел все сделать. В итоге заказчик обратился к другому, у которого опыт работы 3 года. И он выполнил работу за 2 дня. Смотрю я на его код и ви жу что он реакт знает очень хорошо. Но также приходит и мысль о том, как он до этого додумался и смог решить задачу. И это меня демотивирует. Это не признак того, что программирование не для меня? Или у меня тоже есть шанс стать таким и в будущем писать такой код как и он. Ответьте пожалуйста
источник

D

Demeff in JavaScript Noobs — сообщество новичков
Самое главное: научится понять логику
источник

MU

M. U in JavaScript Noobs — сообщество новичков
странный вопрос
источник

MU

M. U in JavaScript Noobs — сообщество новичков
на самом деле
источник

ei

export default - зло... in JavaScript Noobs — сообщество новичков
Кто знает кто знает
источник

MU

M. U in JavaScript Noobs — сообщество новичков
тебя никто не знает - может будешь писать такой код, может не будешь. программирование сильно зависит от опыта тоже, в какой-то степени. учи дальше - в любом случае чему-то да научишься, а будешь ли писать код лучше - только от тебя зависит
источник

ei

export default - зло... in JavaScript Noobs — сообщество новичков
Я вот сначала тоже говнокод писал
источник

ei

export default - зло... in JavaScript Noobs — сообщество новичков
А сейчас вот гений, аполлон фронтенда
источник

ei

export default - зло... in JavaScript Noobs — сообщество новичков
К тому же еще и кот
источник

v

va1 in JavaScript Noobs — сообщество новичков
Это норм, все измеряется опытом, колличеством проблем с которыми ты столкнулся и решил их. И как почувствуешь, что сегодня ты стал гением фронтенда - срочно зови врачей)
источник

B

Bohdan in JavaScript Noobs — сообщество новичков
Из дурк, санитаров
источник

•Ǥus†สff• in JavaScript Noobs — сообщество новичков
Хорошо, а каким образом создавать button с айди?
источник

v

va1 in JavaScript Noobs — сообщество новичков
Либо вешай обработчики на новые кнопки на этапе создания элемента, или делегируй обработку их кликов на контейнер
источник

•Ǥus†สff• in JavaScript Noobs — сообщество новичков
Ты имеешь ввиду button = document.create.......     button.id = " " ?
источник

v

va1 in JavaScript Noobs — сообщество новичков
Смотри, допустим у тебя click2 не нодлист, а хтмл коллекция. То есть ты когда кнопки создаёшь новые, они туда попадают динамически. Проблема в том, что ты листнеры вешаешь только один раз и только на пустой лист
источник

•Ǥus†สff• in JavaScript Noobs — сообщество новичков
Листнеры же объявляются при первом клике?, Тоесть не один раз?, Или я реально не вдупляю...
источник

•Ǥus†สff• in JavaScript Noobs — сообщество новичков
Можешь объяснить на примере кода, не моего, а просто пример
источник

v

va1 in JavaScript Noobs — сообщество новичков
    let click = document.getElementById('add-item-btn')
   let cif = 0
   click.onclick = () => {
       cif++
       let cont = document.querySelector('#container')
       let div = document.createElement('div')
       let c = document.createTextNode(`Element ${cif}`)
       let button = document.createElement('button')
       let button_text = document.createTextNode('×')
       div.appendChild(c)
       button.appendChild(button_text)
       div.appendChild(button)
       button.classList.add('button1')
       div.classList.add('dialog')
       cont.appendChild(div)


       setTimeout(() => {
       cont.removeChild(div)
       }, 5000)
   }
выше мы повешали обработчик на кнопку, которая есть в дом дереве, всё с ней ок.

ниже  document.querySelectorAll('button') нам возвращает пустой нодлист, потому, что в момент когда этот код исполнится, добавленных кнопок на странице нет, они будут добавляться посже - по пользовательскому клику:    
let click2 = document.querySelectorAll('button')

Еще строчкой ниже - ты пытаешься обработчик повешать на псевдо массив, нужно циклом вешать по кнопкам. Но так как массив в этот момент пустой, то это так же не даст результатов.          
  click2.onclick = () => {

Выглядит так - получили 0 элементов button, повешали на них обработчик, всё.
Далее идет работа чисто с пользовательскими кликами по главной кнопке. Мы создаем элементы баттон и добавляем на страницу. Но на этих элементах нет обработчиков, так как этот кусок кода исполнился разок и всё
let click2 = document.querySelectorAll('button')
           click2.onclick = () => {
           console.log(click2)
           let div = document.getElementsByClassName('dialog')
           div.classList.remove('dialog')
           div.classList.add('vanish')
       }
     
```

Это на вопрос - почему)
источник

v

va1 in JavaScript Noobs — сообщество новичков
Решений несколько, либо делегировать обработку событий на уровень выше (зная, что события имеют свойство всплывать по дереву), и в обработчике кликов на контейнере работать с нужными кнопками, чекая их id или дата аттрибуты, или ещё как.
Или в верхнем онклике, где мы создаем элементы и аппендим их в дерево - там и вешать сразу на них обработчики
Либо реинициализировать обработчики на button каждый раз, как добавляем новый элемент, учитывая особенности addEventListener и .onclick
источник

BB

Bogdan Bida in JavaScript Noobs — сообщество новичков
Просто прими факт, что тот опытный чел когда нибуть был слабее тебя на данный момент. Если сидеть и никак не развиваться то через 3 года мало что изменится
источник