2017-11-01 9 views
0

검색 필드에 사용자 유형으로 제안 사항을 표시하기 위해 자동 완성 라이브러리를 가져오고 있습니다.Jquery, .focus()에 문제가 있습니다.

그러나 계획대로 작동하지 않습니다. .js에 .focus() 행 6의 주석 처리가 해제되면 입력 필드에 초점을 맞추지 만 자동 채우기가 작동하려면 추가 클릭이 필요합니다.

당신이 코드를 볼 때 더 잘 설명 있어요 :와는 .focus(), 당신은 자동 제안이 작동 할 수 있도록 수동으로 두 번 검색 상자를 클릭해야 댓글을 달았이이 같은 간다

$("#nav-search-button").click(function(e) { 
e.preventDefault(); 
$("#nav-main-contents").hide(); 
$("#nav-search").show(1000); 
//$("#channel-search-input").focus(); // <-- uncomment me 
}); 
$('#channel-search-input').focusout(function() { 
$("#nav-search").hide(); 
$("#nav-main-contents").fadeIn(800); 
$("#channel-search-input"). 

https://jsfiddle.net/pu7draz2/6/ .focus()가 활성화되었을 때. 그러나 자동 제안이 사용자 유형으로 작동하기를 바랍니다.

답변

0

$ ("# channel-search-input") 대신 다음 코드를 사용해보십시오.

$("#channel-search-input").keydown(function() { 
    alert("key down !!!"); 
0

트리거 아래와 같이 포커스 후 $("#channel-search-input").click();를 사용하여 텍스트 박스의 click 이벤트.

$("#nav-search-button").click(function(e) { 
    e.preventDefault(); 
    $("#nav-main-contents").hide(); 
    $("#nav-search").show(1000); 
    $("#channel-search-input").focus(); 
    $("#channel-search-input").click(); 
}); 
1

이 작동 :

$("#nav-search-button").click(function(e) { 
    e.preventDefault(); 
    $("#nav-main-contents").hide(); 
    $("#nav-search").show(1000, function(){ 
     $("#channel-search-input").trigger('click').focus(); 
    });  
}); 
0

는 INPUT과 이벤트를 onKeyUp에보십시오. onkeyup 이벤트 기능에서 자동 압축을위한 코드를 추가하십시오. 내 오래된 코드에서 몇 가지 검사가 필요할 수 있습니다.

function onkeyupfn(e) { 
    var key = window.event ? e.keyCode : e.which; 

    if (key == 40 || key == 38) { 
     scrolldiv(key); 
    } 
    else { 
     autosuggestion(); 
    } 
}