2013-01-05 73 views
1

我從我的網站有問題的部分製作了jsFiddle以手風琴隱藏和顯示列表元素時的奇怪行爲

當我試着寫代碼:

輸入一些字母到外地會列出使用預輸入姓名和任何元素都點擊了預輸入下拉時,手風琴上不具有<li>在其內部包含搜索將隱藏,並且其中的內容與搜索內容匹配的<li>,只有匹配的<li>應顯示,其他應隱藏。

現在,所有<li>都會顯示,即使它們不包含搜索。

我試着修復它,但根本無法找到我的解決方案。

回答

1

使用你的代碼我修改了它。 後您展示李的你要搜索出那些名單,並隱藏不符合任何兒童包括選擇標準

http://jsfiddle.net/jyuYB/10/演示

改代碼:

$('#findname').typeahead({ 
    source: namelist, 
    updater: function(item) { 
     $('#ponies .accordion-group').show(); 
     $('#ponies .accordion-body li:not(:contains(' + item + '))').parent().parent().parent().parent().hide(); 
     $('#ponies .accordion-body li:contains(' + item + ')').parent().parent().parent().parent().show(); 
     $('#ponies .accordion-body li:contains(' + item + ')').parent().parent().parent().addClass('in'); 
     $('#ponies .accordion-body li').hide(); 
     var tmp = $('#ponies .accordion-body li:contains(' + item + ')').show(); 
     tmp.each(function() { 
      $(this).siblings().each(function(){ $.hide() }); 
     }); 
     return item; 
    }, 
}) 
+0

在控制檯展望,我只注意到jQuery拋出一個錯誤'Uncaught TypeError:不能調用未定義的方法'調用'。在這個問題解決之前,我正在收回綠色的勾號。 – SeinopSys

+0

使用'$(this).siblings()。each(function(){$(this).hide()});',修改錯誤,編輯建議。 – SeinopSys