2012-11-05 2 views
3

jquery의 자동 완성이 창 흐림 효과에 숨어 있습니다.이를 방지하려면 어떻게해야합니까?jquery 자동 완성이 창 흐림 효과를 숨 깁니다. 비활성화하려면

인터넷에서 답변을 찾을 수 없습니다.

$(function() { 
    $(window).focus(function() { 

    }); 

    $(window).blur(function() { 
     $(".ui-autocomplete").each(function(){alert($(this).css("display"));}); 
    }); 


}); 
:

간단하게 들리지만, 다음 코드를 사용하여 윈도우 포커스 및 흐림 내가 바로 흐림에 가기 전에 개설 된 모든 자동 완성의 표시 아무것도 얻을를 결정하기 위해, 윈도우 흐림 자동 완성 숨길을위한 트리거 것 같다

none이 아닌 다른 디스플레이가있는 모든 자동 완성에 변수를 설정하고 포커스를 표시 할 때 흐리게 표시하는 경우 모든 ".ui-autocomplete"에 대해 표시 없음을 얻습니다.

+1

칠 수있는 hasFocus() 기능을 사용하여 ... ??없고 우리는하지 못해 우리를위한 시험 ... 그냥 시도해 본 다음 문제가 있다면 도움을 청합니다. –

+0

희미 해지면 자동 완성 숨소리처럼 들립니다. 창 흐림 이벤트에 연결하면 전파 경로가 높아집니다. 자동 완성에서 흐림 처리기를 제거하거나 경로 아래쪽에 흐림 처리기를 추가하고 거기에서 전파를 중지해야합니다. – DaveRandom

답변

3

자동 완성의 blur 이벤트 핸들러를 다음과 같이 변경해보십시오. 이 :

$(function(){ 
    $('#autocomplete').autocomplete({ 
     source: ['cat','rabbit','donkey'] 
    }).off('blur').on('blur', function() { 
     if(document.hasFocus()) { 
      $('ul.ui-autocomplete').hide(); 
     } 
    }); 
}); 

현재 윈도우의 초점을 확인하고 옵션을 닫습니다 거세한 숫양을 결정하거나 빈칸을하지

jsFiddle here

+0

먼저 문제가있는 것만으로 자동 완성과 창을 통해 흐림 이벤트가 발생하므로 hasFocus()는 문서가 포커스를 잃었는지 확인하지 않습니다. – lbennet

+0

그래도 시간 제한을 추가하여 제대로 작동하지만 확실히 해킹되고 신뢰할 수 없습니다. 타이머가 0으로 타임 아웃되면 좋을 것 같습니다. 문서의 모든 자동 완성을 대상으로하고 흐림 제거 핸들러를 한꺼번에 추가 할 수 있습니까? – lbennet

+0

자동 완성 위젯이 클래스를 자동 완성'input'에 할당하기 때문에'$ ('.ui-autocomplete-input')' – Elliott

관련 문제