jquery - 使用 HTML5 数据属性而不是 CSS 类进行同位素过滤
问题描述
需要一些关于使用 HTML 5 数据属性而不是 CSS 类来过滤同位素内容的帮助或指导。
我目前已经实现了一个完全工作的内容过滤器,它工作得很好,但我需要在要过滤的项目上使用自定义数据属性。
本质上,我对要过滤的项目的标记如下:
<div class="col-4"
data-featured="no"
data-bedroom="3"
data-bathroom="2"
data-garages="0"
data-province="gauteng"
data-city="sandton"
data-suburb="morningside"
data-listing-type="rent"
data-property-type="apartment"
data-property-size="0"
data-land-size="0"
data-price="12000"
data-agents="310061">
<!-- Item content here -->
</div>
这样我就可以过滤掉 div,例如;是 3 间卧室的单位。为此使用 CSS 类我觉得会导致大量开销并且感觉很脏。有没有办法利用自定义数据属性来过滤值而不是 CSS 类?
我目前有以下 JS 代码来处理过滤,但需要对其进行调整以使用数据属性而不是 CSS 类,并且我无法在线或在 Isotope 文档中找到解决方案。我认为需要一个过滤器功能,但这就是我没有找到解决方案的地方。
// Isotope
var filters = {};
var $grid = $('.isotope').isotope({
itemSelector: '.isotope-item',
layoutMode: 'fitRows',
});
$('.filters').on( 'change', function( event ) {
var $select = $( event.target );
var filterGroup = $select.attr('value-group');
filters[ filterGroup ] = event.target.value;
var filterValue = concatValues( filters );
$grid.isotope({ filter: filterValue });
});
function concatValues( obj ) {
var value = '';
for ( var prop in obj ) {
value += obj[ prop ];
}
return value;
}
解决方案
推荐阅读
- ruby-on-rails - 如何在我的 Ruby on Rails 应用程序中读取 JS 文件?
- javascript - 拒绝连接到 URL,因为它违反了 CSP
- java - Spring Batch 将数据从 writer 传递到下一个作业或步骤
- sftp - Azure 逻辑应用 SFTP-SSH 创建操作中的分块不起作用
- mongodb - Spring Boot mongo db连接池问题
- git - 仅克隆一个 gitlab 存储库时出错
- python - 如何将屏幕导入主屏幕?基维
- php - Ajax POST,检查 PHP $_GET 然后 $_POST
- r - sf:生成具有最大距离条件的随机点
- javascript - 在反应本机挂钩中更新嵌套数据状态