2016-06-28 2 views
0

multiselect 드롭 다운에 selected.js를 사용하고 있지만 긴 옵션 목록이있을 때 검색 필터가 느려집니다.Delay Chosen.js search filter

필터가 입력되는 각 글자 뒤에 적용되는 것으로 보입니다. 따라서 최소 글자 수가 입력되거나 필터가 비활성화 된 후 필터가 비활성화 될 때까지 필터를 비활성화 할 수 있다면 더 빠를 것이라고 생각합니다. 마지막 키 입력.

$(".chzn-dynaselect").chosen({ width: '250px', search_contains: true }); 

그리고 난과 같이 필터를 연기하려고 해요 : :

나는과 같이 아래로 내 선택 드롭을 초기화하고있어

이 코드가 제대로 입력 트리거
var timer = 0; 
$('.search-field input').on('input', function() { 
    if (timer) 
    { 
     clearTimeout(timer); 
    } 
    timer = setTimeout(function() { 
     $(".chzn-dynaselect").chosen().trigger("chosen:activate") 
    }, 400); 
}); 

하지만, 아무튼 필터를 지연시키지 마십시오. 모든 키 입력 후에도 필터가 계속 트리거됩니다.

검색 창을 유지하면서 필터 이벤트를 일시적으로 끌 수 있습니까?

답변

0

setTimeout 첫번째 인수 (또는 문자열의 setTimeout의 문서를 참조) 기능을 수, 마우를

timer = setTimeout(function() { 
    $(".chzn-dynaselect").chosen().trigger("chosen:activate") 
}, 400); 
+0

감사합니다! 그것을 놓쳤습니다. 그러나 그것으로조차 모든 편지가 입력 된 후에 Chosen 수색이 아직도 거르고있는 것처럼 보입니다. 검색 창을 계속 유지할 수있는 방법이 없지만 최소한의 글자 또는 사용자가 입력을 중지 할 때까지 필터 이벤트를 지연 시키십니까? 다시 한 번 감사드립니다! – TonyD