0
플립 애니메이션을 제어하는 데 사용되는 다음 코드가 있습니다. 정상적인 클릭으로 모든 것이 잘 작동합니다.빠른 두 번 클릭으로 인해 코드가 오류가 발생합니다
그러나 빠른이 클릭으로 인해 2 개의 이벤트가이 문제를 방지하는 부울 검사를 통과하게됩니다. console.log에서 나는 첫 번째 프로세스에 대해 'started running'을보고 두 번째 클릭에 대해 'already running'을 볼 것으로 예상합니다. 대신 두 번의 클릭이 모두이를 처리하고 나중의 논리로 혼란을 야기 할 것으로 보입니다.
내가 뭘 잘못하고 어떻게이 문제를 피할 수 있는지 누군가 알려주시겠습니까?
감사합니다, 당신은 해제된다
$('.item').each(function() {
var elem = $(this);
elem.data('running', false);
elem.bind("click",function(event){
event.preventDefault();
if (elem.data('running') == false) {
elem.data('running', true);
console.log('started running');
//do some stuff
elem.data('running', false);
} else {
console.log('already running');
}
})
});
왜 '$ ('. item ') .bind ('click ', ...)'을하지 않습니까? 그러면 끔찍한 루프는 필요 없으며 클릭 된 요소를'$ (this) '로 참조 할 수 있습니다. – Bojangles
나는 요점을 줄 수 있기를 바란다. 나는 각각의 중복을 없애고 모든 것이 잘 보인다. 이상하게도 콘솔에 나타나기 위해 '이미 실행 중'이 될 수는 없지만 적어도 이제는 빠른 클릭의 문제가 발생하지 않습니다. 고마워요. – rix
문제가 아니며 rep': P'에 대해 걱정하지 마십시오. – Bojangles