Javascript 无法识别元素显示值
我有照片库类型的网页。它由照片缩略图网格组成,下面有指定的标记 页面顶部是所有标签的列表,格式为按钮。用户可以点击一个或多个标签按钮来过滤照片。我使用同位素js进行过滤。这个很好用 但是,我想添加在同位素过滤后运行的新功能,该功能将隐藏未分配给任何剩余过滤照片的任何标记按钮 我的计划如下:Javascript 无法识别元素显示值,javascript,css,jquery-isotope,Javascript,Css,Jquery Isotope,我有照片库类型的网页。它由照片缩略图网格组成,下面有指定的标记 页面顶部是所有标签的列表,格式为按钮。用户可以点击一个或多个标签按钮来过滤照片。我使用同位素js进行过滤。这个很好用 但是,我想添加在同位素过滤后运行的新功能,该功能将隐藏未分配给任何剩余过滤照片的任何标记按钮 我的计划如下: 识别所有可见的照片 从可见照片的标签创建阵列 使用数组隐藏任何不匹配的标记 然而,当我点击标签按钮并进行过滤后,我在识别可见照片时遇到了问题 这看起来很简单。同位素js更改隐藏照片的指定元素的display=
display=“none”
。例如,如果我检查元素,我可以看到隐藏元素有display=“none”
我创建了一个“visibletags”函数,该函数在点击标签按钮的末尾调用,以查找显示的元素“无”
:
$('.filter button')。在('click',function(){
//这里是同位素代码
//同位素隐藏了一些设置其div'display=“none”的照片
visibletags();
}
函数visibletags(){
var imgdivs=document.querySelectorAll('.imgdiv');
var showtags=[];
对于(变量i=0,max=imgdivs.length;i
但是我无法识别元素的显示值。我已尝试使用窗口.getComputedStyle(imgdivs[I]).display
,imgdivs[I]。display
和imgdivs[I]。style.display
编辑以修改问题:
我测试了将“visibletags()”函数作为单击事件上的另一个按钮运行,在同位素筛选完成后,我手动单击该按钮。这成功地获取了所有照片元素显示值。因此,部分代码确实有效
所以我现在的问题是,如何在同位素过滤之后运行“visibletags()”函数,使其成为一套完整的代码
我尝试将“visibletags()”函数更改为作为$('.filter button').mouseup(function()
运行,但没有得到筛选结果
这可能是Javascript的一个常见问题,例如在呈现事件结果后,如何在单击时获取事件结果?我不熟悉同位素,但您可能需要使用回调函数。请查看此文档,尤其是布局完成部分:
在您的情况下,结果可能是这样的:
$('.filter-button').on('click', function() {
// initialize isotope
$isotope.on('layoutComplete', function() {
visibletags();
});
// other isotope code here
}
为什么不在这个函数中也使用jquery呢?谢谢!对于其他读者来说,$ISOTOX
将是您的“网格”名称或同位素正在操纵的元素分组。在我的例子中,它是$grid
。同样,同位素回调事件arrangeComplete
和layoutComplete
也起作用。
$('.filter-button').on('click', function() {
// initialize isotope
$isotope.on('layoutComplete', function() {
visibletags();
});
// other isotope code here
}