Em frente ao jQuery's .Closest (Top / Far-Most?)
Eu tenho um código com muitos submenus que compartilham o mesmo nome de classe.
Aqui está uma estrutura:
.menu
.sub-menu
.sub-menu
.sub-menu
.sub-menu
.sub-menu
.sub-menu
.elem
.elem
.sub-menu
Observe que.sub-menu
pode ter níveis infinitos profundos.
Então, como eu faço isso: quando.elem
é clicado, eu quero percorrer o DOM para cima até o topo.sub-menu
é atingido e aplicar um estilo a ele. Estou ciente.closest()
e.parent()
e.find()
, mas eu não tenho idéia se jQuery tem esse recurso, como.topMost(selector)
?
A única maneira que eu posso pensar é talvez correr um loop e passando por.closest('.sub-menu')
do novo elemento até seu comprimento é zero (não há mais pais com essa classe, então deve ser o máximo). No entanto, acho que deveria haver uma abordagem mais prática para isso.