【发布时间】:2018-12-17 10:41:49
【问题描述】:
我正在尝试将哈希传递给 URL 以设置 UIkit 过滤器。
<div uk-filter="target:.js-filter">
<ul>
<li class="uk-active" uk-filter-control><a href="#">All</a></li>
<li uk-filter-control="filter:[data-color='blue'];"><a href="#"></a></li>
<li uk-filter-control="filter:[data-color='white'];"><a href="#"></a></li>
</ul>
<ul class="js-filter">
<li data-color="blue"></li>
<li data-color="white"></li>
</ul>
</div>
因此,例如,如果我转到 http://example.com/#white,则该事物仅显示白色项目(并且“白色”过滤器控件处于活动状态)。
我找不到任何关于如何使用 UIkit 3 (This one is about UIkit 2) 实现这一目标的明确示例。 Documentation seems unclear for a noob like me,因为不清楚 target 和 selActive 选项指的是什么。但是,我正在尝试以下操作:
<script>
document.addEventListener("DOMContentLoaded", function(event){
hash = document.location.hash;
console.log("Hash: " + hash);
if ( hash !== "" ) {
var filter = document.querySelector('.js-filter');
UIkit.filter( filter, {
target: 'li [data-color:' + hash + ']',
selActive: true,
});
}
});
</script>
但这会引发“Uncaught TypeError: Cannot read property 'children' of null”错误。
任何帮助将不胜感激。 :)
【问题讨论】:
标签: javascript filtering getuikit