4개의 요소가 있다고 가정하고 그 중 하나만 클래스 이름을 가질 수 있습니다active
. 활성 요소는 초당 여러 번 업데이트됩니다(여기에 더미 예가 있습니다).
간단한 방법은 다음과 같습니다.
active
active
을 설정합니다 문제는 선택한 요소 변경되지 않은 경우 클래스 이름을 제거하고 재설정 (잠재적으로 디스플레이 결함을 일으킬 수 있음)한다는 점입니다. 이는 말이 되지 않습니다.
물론, 여전히 선택된 요소인 경우 제거하지 않는 또 다른 규칙을 추가할 수 있지만 코드 읽기가 어려워집니다.
질문: 이 문제를 해결할 수 있는 표준 모드가 있나요?
으아아아 으아아아 으아아아
P粉8073979732024-04-03 15:01:32
그러면 요소 집합에 대해 active 클래스를 추가하고 제거하는 더 우아한 방법을 찾고 있는 것 같습니다. 모든 요소에서 active
클래스를 제거한 다음 현재 활성 요소에 다시 추가하는 대신(active
类,然后将其添加回当前活动元素(这可能会导致潜在的问题/视觉故障)。而且似乎你正在尝试避免添加太多的代码来检查是否需要删除/添加active
이로 인해 잠재적인 문제/시각적 결함이 발생할 수 있음). 그리고 active
클래스를 제거/추가해야 하는지 확인하기 위해 너무 많은 코드를 추가하지 않으려고 하는 것 같습니다(활성 요소가 변경되지 않은 경우
개인적으로는 이것이 최선의 접근 방식이라고 생각하지 않습니다(코드 실행에 삼항 연산자를 사용하는 것은 지저분할 수 있습니다
). 하지만 코드는 충분히 간단하고 전반적으로 꽤 읽기 쉽다고 생각합니다.
active
类。 add()
函数只会在元素当前没有该类时添加类,而remove()
函数则相反(仅在类存在时删除类)。这意味着你可以在活动元素上调用add()
기본적으로 활성 요소가 변경되지 않으면 시각적 결함에 대한 걱정 없이 코드를 병합하여
이 논리를 사용하면 모든 가능한 요소를 반복한 다음 ternaryadd()
(如果活动元素没有更改,这不会有影响),否则调用remove()
연산자를 사용하여 요소가 현재 활성 요소인지 확인할 수 있습니다. 그렇다면 add()
를 호출하세요(
). 그렇지 않으면 remove()
를 호출하세요.
메모
이는 모든 item
开头的id
가능한