jquery - 基于元素可见性的功能不起作用?

标签 jquery css if-statement

我正在尝试运行两组不同的函数,具体取决于单击另一个元素时某个元素是否可见。这是整个函数:

$('#grid').click(function() {
  if('#photo_grid:hidden') {
    $('#grid').addClass('active').removeClass('fadein');
    $('.cycle-slideshow').fadeTo('fast',0.3);
    $('#photo_grid').fadeIn('slow');
  } else {
    $('#grid').addClass('fadein').removeClass('active');
    $('#photo_grid').fadeOut('fast');
    $('.cycle-slideshow').fadeTo('slow',1.0);
  }
});

这会导致从 #grid.cycle-slideshow 中添加/删除的类根据需要在第一次点击时淡化到 30%。但是,#photo_grid 不会淡入,因此后续点击会失败。任何人都可以提出为什么会这样吗?

页面已上线 here#grid 按钮位于最右下方。

最佳答案

if 的问题在于您正在有效地测试字符串的存在,而您尝试做的是响应字符串的可见性一个元素。因此我建议:

if ($('#photo_grid:hidden').length)

或者:

if ($('#photo_grid').is(':hidden'))

.length 检查确保选择器返回一个或多个元素(因为 jQuery 总是 返回一个数组(即使它是一个 数组),而 is() 方法返回一个 bool 值,以反射(reflect)传递给该方法的选择器匹配或不匹配的元素。

引用资料:

关于jquery - 基于元素可见性的功能不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13534366/

相关文章:

MySQL 使用 IF 语句

c# - 在if语句(C#)中使用“或”运算符的更简单方法

带有某些 IF ELSE If ELSE 条件的 Mysql 查询

jquery - 检查带有 ID 的样式表是否已加载 - 然后执行函数

Javascript 使用正则表达式匹配组替换 HTML 标签

javascript - 表单有效时更改提交按钮颜色

html - CSS Bootstrap 对齐

javascript - 如何在 javaScript 中获取动态 div 宽度

javascript - jQuery 拖放插件不会将元素从其位置移动 - 只是制作副本?

html - 如何在屏幕上拉伸(stretch) 2 个图像相互堆叠的 anchor ?