javascript - 为什么这个else语句没有被触发?

标签 javascript jquery

我一直在尝试让一个 div 在一次单击时位于另一个 div 的后面,并在下次单击时位于该 div 的顶部。例如,当 div1 在 div2 后面并且您单击 div1 时,它应该出现在 div2 前面。当您再次单击 div1(现在位于 div2 前面)时,它应该再次位于 div2 后面。

我正在尝试查找 div 的 z 索引,并使用 if/else 语句确定 z 索引应该更高还是更低。但由于某种原因,else 没有被触发,它似乎只运行 if 语句。

The jsfiddle

下面的代码是我试图查找 z-index 是否低于或高于 5 的地方(它们只能是 0 或 10,但这似乎是一个很好的万无一失的检查方法)。问题是,即使 z-index 变成 10,if 语句仍然会被执行,而不是 else。

if ($(".div1").css("z-index") < "5") { //is z-index smaller then 5? make it 10
   $(".div1").click(function() {
      $(this).css('z-index', '10');
      console.log('block1 if');
   });
} else { //is z-index bigger then 5? make it 0
   $(".div1").click(function() {
      $(this).css('z-index', '0');
      console.log('block1 else');
});
}

我完全不知道问题是什么,所以欢迎所有帮助。 感谢您花时间阅读我的问题!

最佳答案

我不知道这是否可以解决您的问题,但我认为您应该将 if/else 移动到单个单击事件中。也像其他人所说的那样,您需要与 int 而不是字符串进行比较

  $(".div1").click(function() {
      if ($(this).css("z-index") < 5)
      {
        $(this).css('z-index', '10');
      }
      else{
        $(this).css('z-index', '0');
      }
      console.log($(this).css('z-index'));
   });

关于javascript - 为什么这个else语句没有被触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37029463/

相关文章:

javascript - 为什么let=0有效但var=0无效?

jquery - 如何使用jquery检查访问过的链接而不使用任何插件

javascript - 在 div 中垂直滚动多个背景图像以及文本

javascript - 从外部网站获取内容?

php - jquery隐藏问题

javascript - JQuery serialize() 方法不忽略某些表单控件

javascript - Typescript - 索引表达式参数的类型必须为 'string' 、 'number' 、 'symbol' 或 'any'

javascript - 如何在 JavaScript 中获取文本框的值

javascript - 根据键值计算对象长度

javascript - 在 jquery 中使用 'this' 的 If 语句语法