Javascript 无法识别元素显示值

Javascript 无法识别元素显示值,javascript,css,jquery-isotope,Javascript,Css,Jquery Isotope,我有照片库类型的网页。它由照片缩略图网格组成,下面有指定的标记 页面顶部是所有标签的列表,格式为按钮。用户可以点击一个或多个标签按钮来过滤照片。我使用同位素js进行过滤。这个很好用 但是,我想添加在同位素过滤后运行的新功能,该功能将隐藏未分配给任何剩余过滤照片的任何标记按钮 我的计划如下: 识别所有可见的照片 从可见照片的标签创建阵列 使用数组隐藏任何不匹配的标记 然而,当我点击标签按钮并进行过滤后,我在识别可见照片时遇到了问题 这看起来很简单。同位素js更改隐藏照片的指定元素的display=

我有照片库类型的网页。它由照片缩略图网格组成,下面有指定的标记

页面顶部是所有标签的列表,格式为按钮。用户可以点击一个或多个标签按钮来过滤照片。我使用同位素js进行过滤。这个很好用

但是,我想添加在同位素过滤后运行的新功能,该功能将隐藏未分配给任何剩余过滤照片的任何标记按钮

我的计划如下:

  • 识别所有可见的照片
  • 从可见照片的标签创建阵列
  • 使用数组隐藏任何不匹配的标记
  • 然而,当我点击标签按钮并进行过滤后,我在识别可见照片时遇到了问题

    这看起来很简单。同位素js更改隐藏照片的指定元素的
    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 
    }