javascript - 使用 ":checked"切换显示和隐藏 <iframe>

标签 javascript html function toggle checked

我被 JS 卡住了。我首先有 2 个按钮和“onClick”功能,但我现在想将它们“升级”到切换。 使用此 JS,视频显示/隐藏功能和切换幻灯片不起作用。 我想在选中开关时显示视频。

有人可以帮我处理 JS 吗?

function showVideo(){
$("#video").hide();
$("#cb1").click(function() {
    if($(this).is(":checked")) {
        $("#video").show(300);
    } else {
        $("#video").hide(200);
    }
});
}
.tgl {
  display: none;
}

.tgl + .tgl-btn {
  outline: 0;
  display: block;
  width: 4em;
  height: 2em;
  position: relative;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

.tgl + .tgl-btn:after, .tgl + .tgl-btn:before {
  position: relative;
  display: block;
  content: "";
  width: 50%;
  height: 100%;
}

.tgl + .tgl-btn:after {
  left: 0;
}

.tgl + .tgl-btn:before {
  display: none;
}

.tgl:onClick + .tgl-btn:after {
  left: 50%;
}

.tgl-light + .tgl-btn {
  background: #f0f0f0;
  border-radius: 2em;
  padding: 2px;
  -webkit-transition: all .4s ease;
  transition: all .4s ease;
}

.tgl-light + .tgl-btn:after {
  border-radius: 50%;
  background: #fff;
  -webkit-transition: all .2s ease;
  transition: all .2s ease;
}

.tgl-light:checked + .tgl-btn {
  background: #9FD6AE;
} 
<input class="tgl tgl-light" id="cb1" type="checkbox"/>
<label class="tgl-btn" for="cb1"></label>

<iframe id="video" style='width:360px; height: 190px; border: none' src="https://www.youtube.com/embed/owsfdh4gxyc"></iframe>

最佳答案

只是不要在函数中包含 ("#cb1").click(...showVideo() 实际上从未在任何地方被调用,因此未添加事件处理程序:

$("#video").hide();
$("#cb1").click(function() {
    console.log($(this).is(":checked"));
    if($(this).is(":checked")) {
        $("#video").show(300);
    } else {
        $("#video").hide(200);
    }
});
.tgl {
  display: none;
}

.tgl + .tgl-btn {
  outline: 0;
  display: block;
  width: 4em;
  height: 2em;
  position: relative;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

.tgl + .tgl-btn:after, .tgl + .tgl-btn:before {
  position: relative;
  display: block;
  content: "";
  width: 50%;
  height: 100%;
}

.tgl + .tgl-btn:after {
  left: 0;
}

.tgl + .tgl-btn:before {
  display: none;
}

.tgl:onClick + .tgl-btn:after {
  left: 50%;
}

.tgl-light + .tgl-btn {
  background: #f0f0f0;
  border-radius: 2em;
  padding: 2px;
  -webkit-transition: all .4s ease;
  transition: all .4s ease;
}

.tgl-light + .tgl-btn:after {
  border-radius: 50%;
  background: #fff;
  -webkit-transition: all .2s ease;
  transition: all .2s ease;
}

.tgl-light:checked + .tgl-btn {
  background: #9FD6AE;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="tgl tgl-light" id="cb1" type="checkbox"/>
<label class="tgl-btn" for="cb1"></label>

<iframe id="video" style='width:360px; height: 190px; border: none' src="https://www.youtube.com/embed/owsfdh4gxyc"></iframe>

关于javascript - 使用 ":checked"切换显示和隐藏 &lt;iframe&gt;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47761261/

相关文章:

javascript - 为什么使用类时我的 var 未定义?

html - 页眉始终在顶部,页脚始终在底部

javascript - Bootstrap 4 Carousel 获取图片大小

php - RGB 到最接近的预定义颜色

python - 调用同一文件夹中定义的另一个函数时,“模块”对象不可调用

javascript - 如何让 knex 使用 alasql 作为自定义方言

javascript - 滚动功能无限滚动;使页脚无法访问

c# - 如何将 ActiveX 与 ASP.NET 结合使用

javascript - 通过按 Tab 键更改按钮颜色

c++ - 我的 append 功能没有按预期工作。 C++