Size: a a a

2020 July 10

А

Александр in Frontend_ru
я только учусь) как улучшить можно?
источник

IH

Ilya Human in Frontend_ru
Не юзать .parent.parent.parent
источник

Prikolist Начрэл... in Frontend_ru
Ilya Human
Не юзать .parent.parent.parent
Что в этом плохого?
источник

BM

Brs Mdrk in Frontend_ru
ну камон
источник

BM

Brs Mdrk in Frontend_ru
добавил враппер, сломал код
источник

BM

Brs Mdrk in Frontend_ru
так не надо делать
источник

Prikolist Начрэл... in Frontend_ru
Если он уверен в том что верстка не будет меняться, то всё ок. Но в целом да, лучше closest
источник

BM

Brs Mdrk in Frontend_ru
нет не ок
источник

Prikolist Начрэл... in Frontend_ru
Почему?
источник

BM

Brs Mdrk in Frontend_ru
это независимые компоненты
источник

BM

Brs Mdrk in Frontend_ru
у любого живого проекта верстка будет менятся
источник

BM

Brs Mdrk in Frontend_ru
и с большой вероятностью человеком, который не знает что на эту верстку каким-то образом завязан js-код
источник

Prikolist Начрэл... in Frontend_ru
А для чего в js существует такая возможность как получение родителя впринципе? Получается дураки придумали какие-то?
источник

BM

Brs Mdrk in Frontend_ru
господи
источник

BM

Brs Mdrk in Frontend_ru
какое отношение имеет плохое использование API к его наличию в принципе
источник

AK

Artem K in Frontend_ru
Выбор родителя гарантировано работает быстрее. чем выбор родителя по селектору (closest )
И если есть код, который гарантированно не будет меняться  — почему нет, верное решение.

Но 2 и более скачка по parent() - плохой код.
источник

Prikolist Начрэл... in Frontend_ru
Как видишь, Александр, никаких аргументов против такого подхода никто не привёл. Поэтому всё ок и это не говнокод, если ты что-то проверяешь или уверен в структуре. Если это конечный код, то как сказал Brs, он может поломаться и лучше использовать метод closest('.className')
источник

BM

Brs Mdrk in Frontend_ru
Artem K
Выбор родителя гарантировано работает быстрее. чем выбор родителя по селектору (closest )
И если есть код, который гарантированно не будет меняться  — почему нет, верное решение.

Но 2 и более скачка по parent() - плохой код.
ну вот точно микрооптимизации не должны влиять на выбор подхода))
источник

А

Александр in Frontend_ru
Prikolist Начрэл
Как видишь, Александр, никаких аргументов против такого подхода никто не привёл. Поэтому всё ок и это не говнокод, если ты что-то проверяешь или уверен в структуре. Если это конечный код, то как сказал Brs, он может поломаться и лучше использовать метод closest('.className')
Я только начал разбираться в этой теме, поэтому любая критика - хорошо. Спасибо)
источник

Prikolist Начрэл... in Frontend_ru
Brs Mdrk
у любого живого проекта верстка будет менятся
Это в каком-то смысле преждевременная оптимизация. Такое "глубокое" продумываение архитектуры наперёд может приводить к негативным последствиям.

Например, что если структура изменится так, что элемент сам станет целью выборки? Например целевой класс будет размещён на этом же элементе через примесь. Это тоже нужно учитывать и писать дополнительный код, потому что теоретически это возможно?

Всем подходам своё место. И если этого не учитывать, то можно многое не понять. Например недавно мне написали что typeof myVar == 'function' - это говнокод, потому что 2 сравнения, а не 3. Хотя понятно, что в этом случае это не имеет значения. Человек просто запомнил паттерн, "нужно использовать всегда тройное сравнение" и возможно даже не понимает почему
источник