Javascript 流沙插件。如何在两个不同的数据属性中获取一个项目?
我想在单击两个不同的数据属性时收到一个项目Javascript 流沙插件。如何在两个不同的数据属性中获取一个项目?,javascript,jquery,class,filter,custom-data-attribute,Javascript,Jquery,Class,Filter,Custom Data Attribute,我想在单击两个不同的数据属性时收到一个项目图片 其中一个项目有两个选项可供选择,单击两个不同的链接时应可见 在一个列表元素中有数据室和数据选项属性 我的代码如下所示: HTML: 您的大if/else中有一个错误,没有包含class=“li[data rooms=”或“li[data option=”的项目。对不起,我不明白。请您写得更清楚一点好吗?我将不胜感激!您有var$filterType=$(this).attr('class'));,在$filterType中,只能有以下值:all a
图片
其中一个项目有两个选项可供选择,单击两个不同的链接时应可见
在一个列表元素中有数据室
和数据选项
属性
我的代码如下所示:
HTML:
您的大if/else中有一个错误,没有包含class=“li[data rooms=”或“li[data option=”的项目。对不起,我不明白。请您写得更清楚一点好吗?我将不胜感激!您有var$filterType=$(this).attr('class'));
,在$filterType
中,只能有以下值:all active、kawalerka、2pokoje、3pokoje、sprzedaz或wynajem。在if/else语句中,您尝试将此数据与以下值匹配:all、li[data rooms=或li[data option=。在JQuery选择器中也有以下值:$data.find('li[data rooms='+$filterType+')+li[数据选项='+$filterType+']')
,您忘记了:“$data.find('li[datarooms=“'+$filterType+']”]]+li[data option=“'+$filterType+']”])
<ul id="filterOptions">
<li><a href="#" class="all active">Wszystkie</a></li>
<li><a href="#" class="kawalerka">Kawalerka</a></li>
<li><a href="#" class="2pokoje">2 pokojowe</a></li>
<li><a href="#" class="3pokoje">3 pokojowe</a></li>
<li><a href="#" class="sprzedaz">Sprzedaż</a></li>
<li><a href="#" class="wynajem">Wynajem</a></li>
</ul>
<ul class="ourHolder">
<li class="item" data-id="id-1" data-rooms="3pokoje" data-option="wynajem">
<img src="img/oferta/4.jpg" />
</li>
<li class="item" data-id="id-2" data-rooms="3pokoje">
<img src="img/oferta/3.jpg" />
</li>
<li class="item" data-id="id-3" data-rooms="2pokoje">
<img src="img/oferta/2.jpg" />
</li>
<li class="item" data-id="id-4" data-rooms="kawalerka">
<img src="img/oferta/3.jpg" />
</li>
<li class="item" data-id="id-5" data-rooms="sprzedaz">
<img src="img/oferta/4.jpg" />
</li>
</ul>
$(document).ready(function() {
var $filterType = $('#filterOptions li a.active').attr('class');
var $holder = $('ul.ourHolder');
var $data = $holder.clone();
$('#filterOptions li a').click(function(e) {
$('#filterOptions li a').removeClass('active');
var $filterType = $(this).attr('class');
$(this).addClass('active');
if ($filterType == 'all') {
var $filteredData = $data.find('li');
} else if ($filterType == 'li[data-rooms=') {
var $filteredData = $data.find('li[data-rooms=' + $filterType + ']');
} else if ($filterType == 'li[data-option=') {
var $filteredData = $data.find('li[data-option=' + $filterType + ']');
} else {
var $filteredData = $data.find('li[data-rooms=' + $filterType + '] + li[data-option=' + $filterType + ']');
}
$holder.quicksand($filteredData, {
duration: 800,
easing: 'easeInOutQuad'
});
return false;
});
});