jQueryを使用してライブフィルターを行っています。名前に文字列が含まれる要素を選択したり、場所やアクティビティでフィルタリングした要素を選択したりできます。それがアイデアです。私のスクリプトでは問題なく動作していますが、別のモードです。1 回の一致ですべてのフィルターに参加したいと思います。どうすればできますか?ありがとう!
$(document).ready(function (){
jQuery.expr[":"].Contains = jQuery.expr.createPseudo(function(arg) {
return function( elem ) {
return jQuery(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0;
};
});
$("input").keyup(function(){
$(this).change();
});
$("input").change(function(){
var filter = $(this).val().toLowerCase();
if(filter) {
$matches = $('#list_pr, #list_ba').find('a:Contains(' + filter + ')').parent();
$('li', '#list_pr, #list_ba').not($matches).slideUp();
$matches.slideDown();
}else{
$('#list_pr, #list_ba').find("li").slideDown();
}
return false;
});
$("#location").change(function(){
var filter = $(this).val();
if(filter != 'default') {
$matches = $('#list_pr').find("li a[alt*="+filter+"]").parent();
$('li', '#list_pr, #list_ba').not($matches).slideUp();
$matches.slideDown();
}else{
$('#list_pr, #list_ba').find("li").slideDown();
}
return false;
});
$("#category").change(function(){
var filter = $(this).val();
alert(filter);
if(filter != 'default') {
$matches = $('#list_pr').find("li a[alt*="+filter+"]").parent();
$('li', '#list_pr, #list_ba').not($matches).slideUp();
$matches.slideDown();
}else{
$('#list_pr, #list_ba').find("li").slideDown();
}
return false;
});
});