私はこのリンクに似た仕切りでフィルタリングされたリストを持っています。私は自分のコンテンツが空であるときに仕切りが隠されていないことを除いて例とまったく同じように働いています。これは達成しようとしているものです。各divについて、その子要素がすべて非表示の場合、前の要素を非表示にしますか?
http://jquerymobile.com/test/docs/lists/lists-search-with-dividers.html
keyUpイベント内のコードの最初のブロックは、リストをフィルタリングするために動作しますが、私は第二ブロックを追加するときにそれが壊れます。
$("#filter").keyup(function() {
var filter = $(this).val(), count = 0;
$(".filtered:first li").each(function() {
if ($(this).text().search(new RegExp(filter, "i")) < 0) {
$(this).addClass("hidden");
} else {
$(this).removeClass("hidden");
count++;
}
});
//code i've added
$('.li-group').each(function(){
if($(this).children(':visible').length == 0) {
$(this).prev().css('display','none');
}
}):
});
私のHTMLは、このような構造を持っている:そしてdiv.li-group
のすべての子が隠されている場合は、それぞれからkeyupイベントに、チェックして、私は私のコードをどうしようとしていた何
<li class="divider">A</li>
<div class="li-group">
<li>
<a href="#">Link</a>
</li>
<li>
<a href="#">Link</a>
</li>
</div>
<li class="divider">B</li>
<div class="li-group">
<li>
<a href="#">Link</a>
</li>
<li>
<a href="#">Link</a>
</li>
</div>
、そうであればリストのディバイダである前の要素を非表示にします。
注、私は知っている私のコードは、現在unsemanticですが、私は戻って、コードをクリーンアップする前に、私は私のデモが機能して取得したいです。
その罰金を修正http://jsfiddle.net/QStkd/19/ – thecodeparadox
私はkeyupイベントを追加しないとき:http://jsfiddle.net/jamesbrighton/C5vKM/ – Evans