질문을 올바르게 이해했다면 문제는 Firefox에서 onchange
커서가 슬라이더 버튼 위에 있을 때 마우스 버튼을 누르고 마우스를 움직이면 핸들러가 실행되지 않습니다.이동 후 마우스 버튼을 놓은 후에만 실행됩니다.
HTML5 CR이 change
이벤트:“요소에 활성화 동작이 정의되어 있지 않지만 명시적인 커밋 작업이 포함된 사용자 인터페이스를 사용하는 경우 사용자가 요소의 값이나 선택한 파일 목록에 대한 변경 사항을 커밋할 때마다 사용자 에이전트는 작업을 대기열에 넣어 실행해야 합니다. 입력 요소에서 변경이라는 이름을 버블링하는 간단한 이벤트입니다.”
다소 복잡한 공식이지만 명확한 예가 이어집니다.“커밋 작업이 포함된 사용자 인터페이스의 세 번째 예는 슬라이더를 사용하는 범위 컨트롤입니다.사용자가 컨트롤의 손잡이를 드래그하는 동안 입력 이벤트는 위치가 변경될 때마다 실행되는 반면, 변경 이벤트는 사용자가 손잡이에서 손을 떼고 특정 값을 적용할 때만 실행됩니다.”
결론은 이 경우에는 다음을 사용해야 한다는 것입니다. oninput
대신 속성 onchange
.실제로, onmousemove
작동하지만 oninput
마우스를 사용하지 않는 입력 방법(예:음성으로 제어).