我有一个搜索功能,当搜索查询匹配时,它只显示手风琴的特定面板。见小提琴。当 sth 匹配时,手风琴被展开 (class="in")。清除搜索字段后,我希望手风琴返回折叠状态。为此,我尝试删除添加的 class="in",但是当该字段被清除时,它似乎没有刷新。有任何想法吗?
var $infoPanels = $('.panel-info'),
cachedText = [];
$infoPanels.each(function (i, v) {
cachedText[i] = $(this).text().toLowerCase();
});
$('#search-criteria').on('keyup', function () {
var g = $(this).val().toLowerCase();
if (g !== ""){
$infoPanels.parentsUntil('.accordion').hide().removeClass("in");
}
$.each(cachedText, function (i, v) {
if (g.length > 0 && v.indexOf(g) !== -1) {
$infoPanels.eq(i).show().parentsUntil('.accordion').addClass("in").show();
}
});
});
更新:我通过添加 else if 来完成这项工作,请参阅Fiddle。