2014-02-18 2 views
0

나는 얼마 전에 찾은 것에 기반하여 모바일에서 잘 작동하는 함수를 작성했습니다.터치 이벤트 jQuery 함수에 대한 설명

jQuery(document).on('touchstart', function(event) { 
     if (!jQuery(event.target).closest("#peopleMenu").length) { 
      jQuery("#peopleMenu").fadeOut(); 
     } 
    }); 

내가 발견 한 부분은 내 머리를 감싸는 데 걸리는 "if"문에있었습니다.

대상 터치 이벤트가 #peopleMenu에있는 경우 열려있는 상태로 유지되거나 터치하면 닫힙니다.

if (!1) { 
    //false - understand this. 
} 

if (!0) { 
    //true - hmmm. 
} 

내 질문은 기본적으로이 일반적인 프로그래밍 패러다임, 이상한 JS 기능, 또는 필요 이상 단지 까다 롭습니다 다음 if 문은 아래로 비등? 감사.

답변

1

이것은 많은 언어에서 일반적입니다. 자바 스크립트의 모든 것은 부울 값을가집니다. 일반적으로 진리 또는 위선이라고합니다 (예 : 0 또는 빈 문자열). 따라서이 경우 길이가 0으로 돌아 오면 if 문은 false입니다. 여기에 더 많은 것을 알고 싶다면 Javascript와 관련된이 글에 대한 훌륭한 글이 있습니다. Truthy/Falsy

+0

정확합니다. 좋은 읽을 거리! 고맙습니다. – cpk

1

#peopleMenu 또는 그 하위 항목을 터치하면 일반적으로 발생합니다.

0은 위의 값이지만 다른 모든 정수는 진위입니다.

쾅 (!)을 사용하면 값을 반대로 !true == false!false == true이됩니다.

.length jQuery의 속성은 얼마나 많은 요소가 선택되었는지를 알 수있는 방법입니다. 0은 없음을 의미합니다.

관련 문제