복붙노트

[JQUERY] 터치 장치 .click 함수 문서화

JQUERY

터치 장치 .click 함수 문서화

해결법


  1. 1.클릭 또는 터치 기능을 트리거하려면, 당신은이를 변경할 수 있습니다 :

    클릭 또는 터치 기능을 트리거하려면, 당신은이를 변경할 수 있습니다 :

    $(document).click( function () {
    

    이에:

    $(document).on('click touchstart', function () {
    

    아니면 이거:

    $(document).on('click touch', function () {
    

    즉시 요소는 터치 같이 touchstart 이벤트 발생은, 터치 이벤트가 더 "탭", 표면 즉, 단일 접촉 같다. 당신은 정말 당신을 위해 가장 적합한보고 이들 각각을 시도해야합니다. 일부 장치, 터치 트리거에 좀 더 열심히 할 수있다 (좋은 또는 나쁜 일이있을 수 있습니다 - 그것은 드래그 계산하고 방지 할 수 있지만 실수로 작은 드래그가 해고되지 않을 수 있습니다).


  2. 2.touchstart 또는 touchend는 페이지를 스크롤하는 경우 때문에, 장치가 물건을 할, 잘되지 않습니다. 내가 탭과의 긴밀한 창을 원하거나 요소 외부를 클릭하고 창을 스크롤 경우에 따라서, 나는 짓을했는지 :

    touchstart 또는 touchend는 페이지를 스크롤하는 경우 때문에, 장치가 물건을 할, 잘되지 않습니다. 내가 탭과의 긴밀한 창을 원하거나 요소 외부를 클릭하고 창을 스크롤 경우에 따라서, 나는 짓을했는지 :

    $(document).on('touchstart', function() {
        documentClick = true;
    });
    $(document).on('touchmove', function() {
        documentClick = false;
    });
    $(document).on('click touchend', function(event) {
        if (event.type == "click") documentClick = true;
        if (documentClick){
            doStuff();
        }
     });
    

  3. 3.당신은 jqTouch 또는 JQuery와 모바일을 사용할 수 있습니까? 그것은 핸들 터치 이벤트에 훨씬 쉽게있다. 당신은 터치 장치 시뮬레이션 클릭 할 필요가 없습니다 다음 경우,이 기사를 따르십시오 :

    당신은 jqTouch 또는 JQuery와 모바일을 사용할 수 있습니까? 그것은 핸들 터치 이벤트에 훨씬 쉽게있다. 당신은 터치 장치 시뮬레이션 클릭 할 필요가 없습니다 다음 경우,이 기사를 따르십시오 :

    아이폰 - 터치 이벤트 -에 - 자바 스크립트

    터치 데모

    이 스레드에서 더 많은


  4. 4.'touchstart을 클릭하십시오'를 사용하여, 위에서 언급 한 바와 같이 원하는 결과를 얻을 것이다. 당신이 클릭하고 touchstart에서이 작업을 얻을 것이다 - 당신은 클릭 수 있지만 (예)를 CONSOLE.LOG 경우, JQuery와 클릭으로 터치를 인식하면 찾을 수 있습니다. 이 솔루션은 울부 짖는 날 위해 일했습니다.

    'touchstart을 클릭하십시오'를 사용하여, 위에서 언급 한 바와 같이 원하는 결과를 얻을 것이다. 당신이 클릭하고 touchstart에서이 작업을 얻을 것이다 - 당신은 클릭 수 있지만 (예)를 CONSOLE.LOG 경우, JQuery와 클릭으로 터치를 인식하면 찾을 수 있습니다. 이 솔루션은 울부 짖는 날 위해 일했습니다.

    //if its a mobile device use 'touchstart'
    if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
        deviceEventType = 'touchstart'
    } else {
    //If its not a mobile device use 'click'
        deviceEventType = 'click'
    }
    
    $(document).on(specialEventType, function(e){
        //code here
    });
    

  5. 5.사방을 적용하려면, 당신은 같은 뭔가를 할 수

    사방을 적용하려면, 당신은 같은 뭔가를 할 수

    $('body').on('click', function() {
       if($('.children').is(':visible')) {
          $('ul.children').slideUp('slow');
       }
    });

  6. 6.승인 된 대답은 클릭이 핸들러 twoce를 실행 될 것이다 구현 된 경우 클릭를 호출 touchstart 방지하기 위해 필수적인 반환 거짓 포함되지 않습니다.

    승인 된 대답은 클릭이 핸들러 twoce를 실행 될 것이다 구현 된 경우 클릭를 호출 touchstart 방지하기 위해 필수적인 반환 거짓 포함되지 않습니다.

    하다:

    $(btn).on('click touchstart', e => { 
       your code ...
       return false; 
    });
    
  7. from https://stackoverflow.com/questions/11397028/document-click-function-for-touch-device by cc-by-sa and MIT license