2012-01-20 2 views

답변

8

의견에서 언급 한대로 element.blur()은 편집 가능한 div에서 작동하지 않습니다. (이것은 당신의 jsFiddle HTML 코드를 사용)

$('#otherBox').on('click', function(){ 
    $('#orInput').focus().blur(); 
}); 

을 :하지만 대신 실제 입력 필드에 포커스를 이동하고 바로 다시 제거 할 수 있습니다.

이 접근 방식에는 단점이 있습니다. display: hidden 또는 visibility: hidden으로 설정할 수없는 입력 필드가 필요하지만 크기를 0과 opacity: 0으로 설정할 수 있습니다. 또한 위 핸들러가 호출 될 때보기가이 입력 필드의 위치로 스크롤 될 수 있습니다. 따라서 편집 가능한 div 바로 옆 또는 뒤에 두 번째 입력란을 배치해야합니다.

입력 필드가 이전/다음 버튼의 대상이되지 않도록주의해야합니다. 비활성화로 설정하십시오. 그런 다음 필드를 활성화해야합니다 흐리게/포커싱

<input id="orInput" disabled="disabled" style="width:0; height:0; opacity:0" type="text" /> 

:

$('#otherBox').on('click', function(){ 
    $('#orInput').removeAttr("disabled") 
       .focus().blur().attr("disabled", "disabled"); 
}); 

그러나, 이것은 확실히 해결 방법입니다. 아직 다른 해결책을 찾지 못했습니다 (예 : contenteditable 속성을 삭제하면 작동하지 않음).하지만 다른 아이디어를 듣고 싶습니다.

+1

정말 멋지다! 여기 실제로 사용하기에는 너무 무뚝뚝 할 수도 있지만, 그것은 영리합니다. 감사! – tuddy

0

정확하게 할 수 있어야합니다 - 버튼에 이벤트 리스너를 첨부하고 키보드 팝업을 야기한 입력 필드 blur()에 사용하십시오 (JavaScript를 사용하여 해당 요소에 대한 핸들을 얻은 다음 blur 메서드라고 부름).). 그것은 아마 iPad 키보드를 닫습니다.

+0

na, 나는 blur의 여러 구현을 시도해 봤습니다. div 'texteditable'은 일반적인 입력처럼 흐리게 처리하지 않습니다. 그에 따라 jsfiddle를 업데이트했습니다 : http://jsfiddle.net/j_tufte/7HDmN/. 고마워요. – tuddy

관련 문제