2017-12-08 8 views
0

selectizejs에 문제가 있으며 활성 옵션 기능이 선택되었습니다.selectizejs 활성 옵션 설정

예를 들어, 좋은 예는 selectizejs 'github repo의 "Performance" example입니다. 복제하고로드하면 내가 설명 할 내용을 볼 수 있습니다.

무언가를 입력하기 시작하면 Selectize는 첫 번째 옵션을 active으로 설정하고 입력 할 때 목록에서 나가지 않으면 목록에서 사라질 때까지 활성 상태를 유지합니다. 무슨 일이 일어날 지 큰 그룹 (옵션이 실제로 입력 아래의 div 내에서 스크롤되는 경우)은 스크롤 된 div가 잠재적으로 100 가지 옵션과 일치 할 때 첫 번째 옵션을 선택하지 않고 위로 스크롤해야합니다. 첫 번째 옵션으로 돌아갈 div.

저는 게으르므로 이것을 설명하는 jsfiddle를 연결하지 않습니다. 오히려 저는 그들의 성능 예제를 지적하고 있습니다. 이 예제로 내가 무엇을 말하고 있는지 보여주는 방법은 다음과 같습니다. caa을 입력 한 다음 두 번째를 선택하기 위해 아래로 누 르면 ca에 대한 삭제를 누르면 활성 옵션이 목록의 맨 아래로 나옵니다. 필자가 원하는 것은 글자를 입력 할 때마다 목록이 새로 고침 될 때마다 항상 첫 번째 옵션이 선택된다는 것입니다. 레포의 예제 코드는 다음과 같습니다.

var letters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUV'; 
var options = []; 
for (var i = 0; i < 25000; i++) { 
    var title = []; 
    for (var j = 0; j < 8; j++) { 
     title.push(letters.charAt(Math.round((letters.length - 1) * Math.random()))); 
    } 
    options.push({ 
     id: i, 
     title: title.join('') 
    }); 
} 
$('#select-junk').selectize({ 
    maxItems: null, 
    maxOptions: 100, 
    valueField: 'id', 
    labelField: 'title', 
    searchField: 'title', 
    sortField: 'title', 
    options: options, 
    create: false 
}); 

세부 사항이 있습니까? 내가 뭘하려고 아래 것은 이렇게 구성하려면 : 내가 누를 때이 점을 제외하고 대부분의 작동

 onType: function() { 
      //console.log(this.$dropdown); 
      var $options = $('.option', this.$dropdown); 
      $options.each(function() { 
       $(this).removeClass('active'); 
      }); 
      $($options[0]).addClass('active'); 
      $('.selectize-dropdown-content', this.$dropdown).scrollTop(0); 
      this.setValue($($options[0]).text()); 
     } 

은 첫 번째 것에 활성 옵션을 강요 나 이전에 활성 항목을 선택 입력합니다. 플러그인을 사용자 정의하기보다는 파기하는 것이 빠른 방법일까요? 귀하의 의견을 보내 주셔서 감사합니다!

답변

0

나는 미래에 다른 누군가를 위해 그것을 알아 냈습니다. 플러그인을 분석 한 후, 나는 setActiveOption을 발견하고이 작동합니다

 onType: function() { 
      var $options = $('.option', this.$dropdown); 
      this.setActiveOption($($options[0])); 
     } 

가 첫 번째 요소에 대한 활성 옵션을 설정합니다.