2011-11-04 14 views
0

내 페이지에이 바인딩이 있습니다. 페이지에는 항목 표가 표시됩니다. 각 행에는 data-navn 속성이 첫 번째 열과 동일하게 설정되며 모든 소문자 만이 설정됩니다. 이 목록은 꽤 길 수 있으므로 일종의 필터링을 만들고 싶습니다. 나는 텍스트 상자를 만들고이 이벤트 핸들러를 첨부했다.목록 필터 방법을 만드는 것이 좋지 않습니까?

이렇게하는 것이 좋은 방법일까요? 그것은 종류의 해키 보인다 :)

$("#filter").bind('keyup', function() { 
     var t = $("#filter").val(); 
     if (t == "") { 
      $(".row").show(); 
     } else { 
      $(".row").hide(); 
      $('.row[data-navn*="' + t + '"]').show(); 
     } 
    }); 

(이미 jQuery를이 페이지에서 진행했다.)

+0

내게는 괜찮은 것처럼 보이지만 속성 선택기 대신'.filter'를 사용하여 jQuery의'.data()'메소드를 사용하여 설정 한 데이터 속성이있는 행을 찾을 수 있습니다. –

+0

내가 따르는 지 확신 할 수 없다 ... tr의 data-navn 속성은 페이지 생성에서만 설정된다. –

답변

0

그것은 무력하지만,리스트가 효율적으로 작동하는지 충분히 작은 경우 다음 내가 생각하는 벌금. 성능이 느린 것을 알기 시작하면 고려할 수있는 최적화가 있습니다. 이것들은 내가 머리 꼭대기에서 생각할 수있는 것이다.

  1. 기다립니다 적어도 두 개 또는 세 개의 문자는
  2. 캐시 jQuery를 모든 패스에서 전체 조회를하지 않도록/숨겨진 항목을 표시 현재의 목록을 필터링하기 전에 입력 할 때까지.
+0

목록은 그리 길지 않을 것입니다. 최대 10-20 개의 항목 –

관련 문제