【问题标题】:jQuery Div Toggle SwitcherjQuery Div 切换器
【发布时间】:2021-05-24 19:14:54
【问题描述】:

我正在使用这个 jQuery 代码,它使用单选按钮来切换两个不同的 div

$(function() {
$("[name=toggler]").click(function(){
        $('.toHide').hide();
        $("#blk-"+$(this).val()).show('slow');
});

});

这里是 HTML

<label><input id="rdb1" type="checkbox" name="toggler" value="1" />First</label>
    <label><input id="rdb2" type="checkbox" name="toggler" value="2" />Second</label>
    
    <div id="blk-1" class="toHide" style="display:none">
        First div content
    </div>
    <div id="blk-2" class="toHide" style="display:none">
        Second div content
    </div>

这很好用,但我想把它设计成一个 IOS 拨动开关,但我不断为每个输入获得两个拨动开关,它仍然有效,但只是试图让一个按钮打开和关闭。

【问题讨论】:

  • 我正在尝试将其设置为 IOS 切换开关的样式 - 这是您需要包含的相关代码。
  • 这里是 JS 小提琴jsfiddle.net/eKFrW
  • 在那个小提琴中仍然没有“IOS切换开关”(这只是这里的重复)-请更新问题以包括当你说你“继续得到两个”时你尝试过的内容
  • 抱歉,我希望它看起来像这样:w3schools.com/howto/tryit.asp?filename=tryhow_css_switch 但每个单选按钮我一直有两个这样的切换开关
  • 实际的问题是我需要能够隐藏/显示两个不同的 div。我的第一个示例(js 小提琴)效果很好。它显示并隐藏了我的两个 div,但我希望它是一个切换按钮(如 w3 学校示例)我不想要的按钮。我想在两个 div 之间打开和关闭

标签: jquery radio-button toggle


【解决方案1】:

我需要能够隐藏/显示两个不同的 div

制作一个可以打开和关闭的按钮

您需要一个 single 复选框,以便获得一个 single“IOS”切换按钮。这将需要对您的 js 进行一些小的更改:

var toShow = $(this).is(":checked") ? "blk-2" : "blk-1";
$("#" + toShow).show('slow');

没有更改您的 css(来自小提琴链接),给:

$("[name=toggler]").click(function() {
  $('.toHide').hide();
  var toShow = $(this).is(":checked") ? "blk-2" : "blk-1";
  $("#" + toShow).show('slow');
});
/* The switch - the box around the slider */

.toggler {
  position: relative;
  display: inline-block;
  width: 60px;
  height: 34px;
}


/* Hide default HTML checkbox */

.toggler input {
  opacity: 0;
  width: 0;
  height: 0;
}


/* The slider */

.slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #ccc;
  -webkit-transition: .4s;
  transition: .4s;
}

.slider:before {
  position: absolute;
  content: "";
  height: 26px;
  width: 26px;
  left: 4px;
  bottom: 4px;
  background-color: white;
  -webkit-transition: .4s;
  transition: .4s;
}

input:checked+.slider {
  background-color: #2196F3;
}

input:focus+.slider {
  box-shadow: 0 0 1px #2196F3;
}

input:checked+.slider:before {
  -webkit-transform: translateX(26px);
  -ms-transform: translateX(26px);
  transform: translateX(26px);
}


/* Rounded sliders */

.slider.round {
  border-radius: 34px;
}

.slider.round:before {
  border-radius: 50%;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<label class="toggler"><input id="rdb1" type="checkbox" name="toggler"/><span class="slider round"></span></label>

<div id="blk-1" class="toHide">
  money
</div>
<div id="blk-2" class="toHide" style="display:none">
  interest
</div>

【讨论】:

  • 这在这里很好用,但只能在我的页面上工作一次,并且在我来回切换时不会显示我试图显示的其他 div
  • 确保您拥有正确的 ID。确保使用代码编辑问题。
  • 我让它工作了,谢谢!!!!你是我的主和救世主。
猜你喜欢
  • 1970-01-01
  • 2010-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多