JavaScript 코드 실행 시 범위 순서 문제가 있습니까?
phpcn_u1582
phpcn_u1582 2017-06-26 10:51:58
0
2
732

var mark2=true;
$(".right").click(function(){

으아아아

기능 이동(obj){

으아아아

$(".right")를 클릭하여 이동 기능을 실행합니다. 주로 obj 요소에 애니메이션을 추가하기 위해 $(".right")를 너무 빠르게 클릭하여 애니메이션이 겹치는 것을 방지하기 위해 mark2를 사용하여 제어합니다. . 애니메이션 실행이 완료된 후, 즉 500밀리초 후에는 true가 됩니다. $(".right")를 클릭하면 실행됩니다. 하지만 클릭할 때 질문이 있습니다. 속도가 500밀리초를 넘으면 if 문에 표시가 실행될 기회가 없어서 계속 클릭했는데 애니메이션이 계속 겹쳐지진 않을까요? mark는 항상 true이기 때문에 제가 이해한 것이 잘못된 것 같습니다. 프로그램이 정상적으로 실행될 수 있기 때문에 프로그램 실행 과정을 누가 지도해 주셨으면 좋겠습니다

phpcn_u1582
phpcn_u1582

모든 응답(2)
女神的闺蜜爱上我

문제의 핵심은 클릭 속도가 500ms보다 크다는 점을 이해합니다. 이는 사실입니다. 동일한 요소에서 mousedown mouseup事件后才会触发 click 이벤트만 차례로 실행됩니다. move()는 클릭 이벤트가 발생한 후에만 실행됩니다

그래서 여러분이 고려하고 있는 타임아웃 상황은 발생하지 않을 것입니다.

仅有的幸福

가변제어를 사용하고 싶다면 mark2를 위쪽으로 옮기는 것이 이해하기 쉽도록 하는 것이 가장 좋습니다. 프로세스는 다음과 같습니다.
만약 다음과 같은 경우:
오른쪽 클릭 -----》비동기 애니메이션 실행------》mark2 = false ----(0.5초 후)------》mark2 = true;

그러므로 어떻게 클릭하든 0.5초보다 크든 0.5초보다 작든 애니메이션 실행이 완료되고 mark2가 true가 아니면 if 조건이 전혀 입력되지 않습니다

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿