5

항목을 선택하면 앞 글자 드롭 다운이 닫히지 않도록하려면 어떻게해야합니까? 나는 다음과 같이 preventDefault를 사용해 보았습니다.typeahead.js 드롭 다운이 닫히는 것을 방지합니다. 선택

$('#q').bind('typeahead:selected',function(obj, datum, name) { 
      ... 
      obj.preventDefault(); 
     }); 

하지만 성공하지 못했습니다.

편집

: 나는 typeahead_views.js에서 주석 처리 된 줄 217-218로 선행 입력을 구축하여이 문제를 "해결"관리했습니다 :

byClick && utils.isMsie() ? 
     utils.defer(this.dropdownView.close) : this.dropdownView.close(); 

그러나 소스 파일을 수정하지 않고 다른 방법이 있어야한다?

답변

0

닫힌 콜백에서 입력 포커스를 트리거합니다. 첫 번째 부분은 나 자신의 일부 사냥을 데려 Typeahead.dropdown 개체에 액세스하므로

$('#typeahead-input').on('typeahead:closed', function(e, d) { 
     $('#typeahead-input').focus(); 
    }); 
+0

이 여전히 드롭 다운을 찾습니다. –

0

나는 tokenfield 내부 선행 입력에 일하고 있어요.

isOpen으로 전화를 걸거나 close 기능을 덮어 쓰려고했는데 가장 가까운 곳에서이 기능을 사용했습니다. 사건의 마샬링을 무너 뜨리는 것. 기본적으로 첫 번째 3 줄의 Typeahead.select 등 모든 값 저장을 다시 구현해야합니다.

입력란에 입력 양식을 넣을 수있을 때 차단되었습니다. 입력란에 대화식 항목을 넣으 려한다면 조금 더 사냥을해야합니다. 이것에 대한 롤 - 당신 - 자신의 솔루션에 갈 거라 생각하지만, 그냥 닫는 막으려 고하는 사람이 도움이 될 수도 var에 원래의 기능을 넣어 당신이 끝나면 그것을 다시 넣어.

$('input[id="test"]').data('bs.tokenfield') 
    .$input.data('ttTypeahead').dropdown.trigger = function(e) {}; 

또한이가 잠재적 인 :

 input.data('tt-typeahead')._selectOld = input.data('tt-typeahead')._select 
    input.data('tt-typeahead')._select = function(datum) { 
     if (false) 
     this._selectOld(datum) 
    } 
0

$(document).on('typeahead:beforeclose', function(event, data) { 
    event.preventDefault() 
}) 

(단지 닥터 개발 도중 매우 도움이 될 수있는 마감에서 opdown, 'typeahead:beforeselect' 단지 selet에 닫는 것을 방지하려는 경우)를 사용하십시오.

0

어디서나 문서화하지 않는 것 같은 문제와 (아주 쉬운) 솔루션을했다 : 간단한 방법은
$('input[id="test"]').data('bs.tokenfield') 
    .$input.data('ttTypeahead').eventBus.trigger = function(e) {}; 
관련 문제