li
をクリックすると、div
のデータは、選択したli
のデータ値に基づいてフィルタリングする必要があります。これは動作していますが、何らかの理由で最初にページを読み込むときに、フィルタが機能するためにli
を2回クリックする必要があります。何らかの理由でul liでフィルタと検索のテキストをクリック
<div class="dropdown">
<a href="javascript:;" class="btn dropbtn selectBedrooms">select bedrooms <span class="icon downarrow"></span></a>
<ul id='filterFloorplans' onClick='filterFloorplans()' class="btn dropbtn">
<li data-value="1" class="dropdown-option">1 Bedroom</li>
<li data-value="2" class="dropdown-option">2 Bedrooms</li>
<li data-value="all" class="dropdown-option">all</li>
</ul>
</div>
<div class="floorplanscontainer">
<div class="unit">1 bedroom</div>
<div class="unit">1 bedroom</div>
<div class="unit">2 bedrooms</div>
</div>
<script>
function filterFloorplans()
{
$('.dropdown-option').click(function() {
var theValue = $(this).attr('data-value');
var rex = new RegExp(theValue);
if(rex =="/all/"){
clearFilter()
}else{
$('.unit').hide();
$('.unit').filter(function() {
return rex.test($(this).text());
}).show();
}
$('.dropdown ul.on').removeClass("on");
});
}
function clearFilter()
{
$('.filterFloorplans').val('');
$('.unit').show();
}
$('.selectBedrooms').click(function() {
$('.dropdown ul').toggleClass("on");
});
</script>
それを投稿する前にビットをあなたのコードをフォーマットしてください。 –
'$(document).on( 'event'、 'element'、function(e){}); ' –
クリックの中でのバインディングクリックは悪い考えです。 – epascarello