2014-04-23 3 views
1

지금은 입력이 포커스를 잃을 때 iPad 키보드를 숨기기 위해 jQuery를 약간 사용하고 있습니다. iPad 키보드를 입력 사이에 유지

jQuery(function($) { 
     $(document).on('touchend', function(e) { 
      document.activeElement.blur(); 
     }); 
    }); 

하지만 사용자 입력의 키보드가 사라질 입력하고 다시 나타남 입력이 변경 될 때마다로 클릭 결제 같은 과정. 터치 한 문서의 위치에 입력 된 텍스트 형식이없는 경우 위의 jquery 코드를 활성 요소 만 흐리게하는 위치로 변경할 수 있습니까?

답변

0

글쎄, 이전에 iPad에서이 기능을 시도하지 않았으므로 제대로 작동하지 않을지 모르지만 document.activeElement 유형을 확인하여 텍스트 또는 텍스트 영역인지 확인하십시오. 그렇지 않은 경우 blur()을 수행하십시오. 코드는 다음과 같습니다

setTimeout이 초점은 현재의 요소 (즉시 무엇을하고 있는지 확인하기 전에, 다음 요소로 전송 않았는지 확인하기 위해 필요
jQuery(function($) { 
    $(document).on('touchend', function(e) { 
     setTimeout(function() { 
      var currentElement = document.activeElement; 

      if ($(currentElement).not("textarea, :text").length > 0) { 
       currentElement.blur(); 
      } 
     }, 100); 
    }); 
}); 

에서, activeElement<body>를 반환합니다).

이 일반적인 접근 방식은 데스크톱 브라우저 환경에서 작동하고 (즉, 현재 activeElement입니다 입력 한 내용을 확인)이 SHOULD 아이 패드에서 작동하지만, 내가 전에, 나는 없었습니다 말했듯 기회를 시험해 볼 수있는 기회이기 때문에 실제 "답변"보다 "가능한 해결책"을 더 많이 사용합니다. : D

+1

슬프게도 이렇게하면 iPad에서 입력 흐림 효과에 키보드가 숨겨집니다. 확실하지 왜, 나는 스티브 잡스를 비난했다. 이 일을 위해 개발하는 것은 악몽입니다. 하지만 시도해 줘서 고마워! = P – Xander

+0

잘 찍어. . . 이론적으로, 나는 그것이 (현재 코드가 어떻게 동작하는지에 대한 나의 이해를 바탕으로) 효과가있을 것이라고 생각했을 것이다. 오 잘, 나는 이것이 어떻게 풀리는지에 관해 알기 위해 기묘하다. . . 행운을 빕니다! – talemyn

관련 문제