javascript - 使用数据属性自动触发点击页面加载 - jquery
问题描述
我试图触发基于数据属性的页面加载点击,在本例中为数据过滤器。我有保存在本地存储中的属性值。我检索它,但我不确定我如何定位具有该属性的特定列表项。
例如,如果本地存储返回 .portfolio-category-1,我该如何定位?
提前致谢
/* on click do this */
$(".edgtf-pl-filter").click(function() {
var isFilter = $(this).data("filter");
localStorage.setItem('pod-filter', isFilter);
alert(isFilter);
});
/* On page load, do this */
var isFilterRet = localStorage.getItem('pod-filter');
setTimeout(function() {
$(".edgtf-pl-filter").trigger('click');
}, 10);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li class="edgtf-pl-filter" data-filter="">
<span>all</span>
</li>
<li class="edgtf-pl-filter" data-filter=".portfolio-category-1">
<span>Categroy 1</span>
</li>
<li class="edgtf-pl-filter" data-filter=".portfolio-category-2">
<span>Category 2</span>
</li>
<li class="edgtf-pl-filter" data-filter=".portfolio-category-3">
<span>Category 3</span>
</li>
<li class="edgtf-pl-filter" data-filter=".portfolio-category-4">
<span>Category 4</span>
</li>
</ul>
解决方案
这将为您工作:
我添加了一个.each()
函数来检查所有元素并使用它来.edgtf-pl-filter
识别元素localStorage
并触发click()
它。
我已删除该setTimeout()
功能,因为它不是必需的
/* on click do this */
$(".edgtf-pl-filter").click(function() {
var isFilter = $(this).data("filter");
localStorage.setItem('pod-filter', isFilter);
alert(isFilter);
});
/* On page load, do this */
var isFilterRet = localStorage.getItem('pod-filter');
$(".edgtf-pl-filter").each(function() {
var atrFil = $(this).data("filter");
if (atrFil == isFilterRet) {
$(this).trigger('click');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li class="edgtf-pl-filter" data-filter="">
<span>all</span>
</li>
<li class="edgtf-pl-filter" data-filter=".portfolio-category-1">
<span>Categroy 1</span>
</li>
<li class="edgtf-pl-filter" data-filter=".portfolio-category-2">
<span>Category 2</span>
</li>
<li class="edgtf-pl-filter" data-filter=".portfolio-category-3">
<span>Category 3</span>
</li>
<li class="edgtf-pl-filter" data-filter=".portfolio-category-4">
<span>Category 4</span>
</li>
</ul>
工作小提琴以检查它是否正常工作。
希望这对您有所帮助。
推荐阅读
- java - Aspect 仅适用于 Aspect 类所在包上的类
- javascript - 如何验证来自 Localstorage 的令牌并将 currentUser 从 Apollo Server 返回到 React 前端?
- android - 如何使用 Ktor BoundDatagramSocket 监听传入的 udp 流量
- android - CountDownTimer:在 Activity、ViewModel 还是单独的类中?
- css - 在 wordpress 上开发主题时如何解决 css 问题?
- javascript - 想要在 OSM 地图的信息窗口中右击显示 POI 信息。?
- ios - 从 ionic 命令构建 ios 失败
- azure-web-app-service - KeyVault 中未更新应用服务证书
- java - 使用流从 Java 8 中的文件中读取特定列,并将它们放入 2D 数组中
- angular - 如何使用打字稿修复“未找到规范”错误