【问题标题】:How to get the switch toggle switch current state(true/false) onload in Javascript如何在Javascript中获取开关切换开关当前状态(真/假)onload
【发布时间】:2021-12-12 16:15:24
【问题描述】:

我有一个来自 PHP/Mysql 代码的多开关切换,我想在当前 ON 的切换中显示 div

另外,我想在切换开关打开/关闭时显示/隐藏 div

我的 PHP 代码:

  <li>
    <?php echo $_ship_method_value['shipping_title'];?>
    <label class="switch">
      <!-- Toggled Case -->
      <input type="checkbox" id="toggd" name="toggle" value="<? echo $_ship_method_value['shipping_id']; ?>" class='cmn-toggle cmn-toggle-round' data-switchery <? if(array_key_exists("shipping_available",$_ship_method_value)) echo 'checked'; ?> /> 
       <span class="slider round hide-off"></span>
  </li>

      <div class="show-hide">
         <p>Want to show this div ;-)</p>
     </div> 
  
 

我的 jQuery 代码

   $('input[name=toggle]').change(function(){
          var mode = $(this).prop('checked');
            if(mode == true){
              $(".show-hide").show();
            }else{
              $(".show-hide").hide();
            }
          });'

但此代码仅适用于单击单个切换事件的切换。

请帮助我找到解决方案。谢谢!

【问题讨论】:

  • 你是li的兄弟吗?如果是,那就是$(this).closest("li").next(".show-hide")。另请注意,您不能将 div 作为 li 的兄弟,我建议您将其移入 li,或向我们展示完整的 html。
  • 你想为每个切换按钮显示不同的 div 还是为所有切换按钮保存 div
  • 你能把你的代码写在codepen上吗?

标签: javascript php jquery mysql


【解决方案1】:
 $('.toggle_check_box').change(function(){
          var mode = $(this).prop('checked');
            if(mode == true){
              $(".show-hide").show();
            }else{
              $(".show-hide").hide();
            }
          });

您可以为您的复选框应用类并像这样使用。这将在所有开关按钮上切换 div

【讨论】:

  • 嗨,Deepak,感谢您的回复,但它不起作用,.show-hide div 显示所有切换,当我单击任何切换打开/关闭时,它会从所有切换中删除并出现当我打开切换开关时,所有人都一样。
【解决方案2】:
 $('body').on('change', 'input[name=toggle]', function() {
    var mode = $(this).prop('checked');
    if (mode == true) {
        $(".show-hide").show();
    } else {
        $(".show-hide").hide();
    }
});

** 更新**

如果 div 位于 li 旁边,那么下面的代码将为您工作。

 $('body').on('change', 'input[name=toggle]', function() {
    var mode = $(this).prop('checked');
    if (mode == true) {
       $(this).closest("li").next(".show-hide").show();
    } else {
       $(this).closest("li").next(".show-hide").hide();
    }
});

【讨论】:

  • 嗨,Hiren,谢谢您的回复,但它不起作用,.show-hide div 显示所有切换,当我单击任何切换打开/关闭时,它会从所有切换中删除并出现当我打开切换开关时,所有人都一样。
  • 请与我们分享您的 HTML。
    是在
  • 标签旁边还是位于某个地方?
  • 请检查上面的代码是否适合您。我在 codepen 上测试过。
  • @AlokKumar 您的 codepen 没有安装 jquery,这就是示例不起作用的原因
  • 猜你喜欢
    相关资源
    最近更新 更多
    热门标签