Реализация окна поиска с нечетным поведением JQuery SlideUp () и SlideDown () с последним элементом - PullRequest
0 голосов
/ 15 июня 2011

Я использую JQuery для реализации опции динамического поиска, когда пользователь вводит в искомом тексте список, начинающий с SlideUp () тех элементов, которые не совпадают, и SlideDown () с теми, которые делают.Я использовал этот сайт в качестве основы и работал довольно неплохо, за исключением одной маленькой, но нервной детали.

Когда я набираю текст, который, например, SlidesUp 2 из 5перечисляет элементы, затем, когда я стираю ранее набранный текст, появляются только 4 из них (вместо исходных 5).И это не всегда тот же самый элемент, который остается скрытым в конце.

Это мой соответствующий код:

$("#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, которое оно должно показывать).Есть идеи ???

1 Ответ

0 голосов
/ 16 июля 2011

Хорошо, потребовалось много времени, чтобы понять это.Это оказалось чем-то довольно глупым.Я публикую это на тот случай, если это в конечном итоге окажется полезным для кого-то.

В случае "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.Вот так, работает как шарм.

...