2011-06-15 3 views
0

사용자가 검색 한 텍스트를 입력 할 때 JQuery를 사용하여 목록에서 SlideUp()을 시작합니다. 일치하지 않는 SlideDown(), 일치하는 SlideDown 나는 this site을 기본으로 사용했고, 작지만 아직 까다로운 세부 사항을 제외하고는 꽤 잘 작동했습니다.JQuery의 SlideUp() 및 SlideDown()을 사용하여 검색 상자 구현 마지막 요소가있는 홀수 동작

목록 요소 중 5 개 중 SlidesUp 2와 같은 텍스트를 입력 할 때 이전에 입력 한 텍스트를 지울 때 (예 : 원본 5 대신) 4 개만 나타납니다. 끝 부분에 숨겨진 요소와 항상 동일한 요소가있는 것은 아닙니다.

이 내 관련 코드입니다 :

$("#searchTextBoxId").change(function(){}).keyup(function() { 
    $(this).change(); 
}); 
$("#searchTextBoxId").change(function(){ 
    var filter = $("#searchTextBoxId").val(); 
    if (filter){$("#ajaxListView").find("name:not(:Contains("+filter+"))").parent().parent().slideUp();$("#ajaxListView").find("name:Contains("+filter+")").parent().parent().slideDown();  
    }else{ 
    $("#ajaxListView").find('untipodedom').slideDown(); 
    $("#mst").text("Amount of elements: "+$("#ajaxListView").find('untipodedom').length);  
    } 
}); 

그것도 출력 텍스트 5 (DIV 년대가 보여주는한다의 양)을 말한다는 사실 wierder입니다. 어떤 아이디어 ???

답변

0

좋아, 이것을 알아 내기까지 오랜 시간이 걸렸습니다. 그것은 꽤 어리석은 것으로 밝혀졌습니다. 결국 누군가에게 도움이되는 경우를 대비하여 게시합니다.

"else"의 경우 jquery "find"선택자가 올바르게 선택되지 않았습니다. 나는 다음에 변경 :

function SlideUpAndDown(filter){ 
    if (filter){ 
     $("#cListView").find("name:not(:Contains("+filter+"))").parent().parent().slideUp(); 
     $("#cListView").find("name:Contains("+filter+")").parent().parent().slideDown(); 
    } else { 
     $("#cListView").find("*").parent().parent().slideDown();    
    } 
} 

내가하여 CListView에있는 모든 항목을 선택하기 위해 보편적 인 선택기를 '*'를 사용. 그게, 매력처럼 작동합니다.