버블링 이벤트를 배우고, 코드를 입력하고, 온라인 기사를 기반으로 작은 세부 사항을 변경했습니다. 질문이 있습니다.
1. 최종 목표는 마우스가 위로 움직일 때 색상을 변경하는 것입니다.2. 다음 li 요소를 클릭하면 이전에 클릭한 요소의 색상이 복원되는 문제를 해결하는 방법은 무엇입니까?
당신의 아이디어와 사용할 방법을 알려주세요. 나머지는 제가 직접 작성하겠습니다. 감사합니다!
PS: 책을 읽는 것은 쉽지만, 코드를 직접 작성하는 것은 헷갈립니다.
으아아아
JS 코드:으아아아
滿天的星座2017-05-19 10:32:58
1. CSS로 해결할 수 있다면 JS는 필요하지 않습니다. 질문의 아이디어는 hover 의사 클래스가 이 문제를 해결할 수 있다는 것입니다.
2 그런데 코드가 클릭 이벤트인데.. 좀 틀린데요.. 그럼 이벤트 프록시를 작성했으니 리가 많지 않을 때 하위로 작성해서 직접 리를 동작시켜보겠습니다
폐쇄를 아시나요? 전역 변수를 오염시키지 않고 클로저를 사용하기 위해 먼저 작성하는 방법은 모든 li의 색상을 직접 지우고 현재 클릭된 li에 색상을 추가하는 것입니다.
두 번째 작성 방법은 요소 획득 및 종료에 대해 다시 외부에 동일한 코드를 작성하지 않겠습니다. 으아악
두 번째 방법은 이전 방법을 지우고 현재 리에 색상을 추가하는 것입니다. 이에 비해 두 번째 방법의 성능이 약간 더 좋고, 첫 번째 방법이 이해하기 더 쉽습니다.ps: 하지만 그래도 이벤트 프록시 작성 방법을 권장합니다.
某草草2017-05-19 10:32:58
마우스를 위로 올렸을 때 색상을 변경하려면 주로 CSS를 사용해야 하는데, pseudo class:hover를 하면 됩니다.
클릭하면 두 가지 아이디어가 나옵니다. 1. ul 아래의 모든 li 색상을 복원하고 e.target을 빨간색으로 변경합니다.
2. 이전 대상을 저장하려면 클릭하고, 이전 대상의 색상을 복원하려면 클릭하면 현재 대상이 빨간색으로 변합니다
淡淡烟草味2017-05-19 10:32:58
xx에서 위로 이동하고 yy로 아래로 이동하는 경우 먼저 CSS의 hover 의사 클래스 사용을 고려하세요.
$(this)