You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blogspot自定义Contempo主题折叠栏深色模式按钮失效修复

解决折叠栏深色模式按钮失效问题

问题根源是重复使用了同一个ID modedark,HTML中ID必须唯一,导致JS仅能绑定第一个按钮的事件;同时折叠栏按钮属于动态渲染元素,常规事件绑定无法生效。按以下步骤修改:

1. 修改所有按钮的HTML代码

给每个深色模式按钮的input设置唯一ID,同时添加统一类名便于JS/CSS批量选择:

<!-- 原正常按钮 -->
<div class='modedark'>
  <input class='check modedark-input' id='modedark-1' title='Mode Dark' type='checkbox'/>
  <label class='iconmode' for='modedark-1'>
    <svg class='openmode' viewBox='0 0 24 24'>
      <path d='M12,18C11.11,18 10.26,17.8 9.5,17.45C11.56,16.5 13,14.42 13,12C13,9.58 11.56,7.5 9.5,6.55C10.26,6.2 11.11,6 12,6A6,6 0 0,1 18,12A6,6 0 0,1 12,18M20,8.69V4H15.31L12,0.69L8.69,4H4V8.69L0.69,12L4,15.31V20H8.69L12,23.31L15.31,20H20V15.31L23.31,12L20,8.69Z'/>
    </svg>
    <svg class='closemode' viewBox='0 0 24 24'>
      <path d='M14.3,16L13.6,14H10.4L9.7,16H7.8L11,7H13L16.2,16H14.3M20,8.69V4H15.31L12,0.69L8.69,4H4V8.69L0.69,12L4,15.31V20H8.69L12,23.31L15.31,20H20V15.31L23.31,12L20,8.69M10.85,12.65H13.15L12,9L10.85,12.65Z'/>
    </svg>
  </label>
</div>

<!-- 折叠栏内的按钮 -->
<div class='modedark'>
  <input class='check modedark-input' id='modedark-2' title='Mode Dark' type='checkbox'/>
  <label class='iconmode' for='modedark-2'>
    <svg class='openmode' viewBox='0 0 24 24'>
      <path d='M12,18C11.11,18 10.26,17.8 9.5,17.45C11.56,16.5 13,14.42 13,12C13,9.58 11.56,7.5 9.5,6.55C10.26,6.2 11.11,6 12,6A6,6 0 0,1 18,12A6,6 0 0,1 12,18M20,8.69V4H15.31L12,0.69L8.69,4H4V8.69L0.69,12L4,15.31V20H8.69L12,23.31L15.31,20H20V15.31L23.31,12L20,8.69Z'/>
    </svg>
    <svg class='closemode' viewBox='0 0 24 24'>
      <path d='M14.3,16L13.6,14H10.4L9.7,16H7.8L11,7H13L16.2,16H14.3M20,8.69V4H15.31L12,0.69L8.69,4H4V8.69L0.69,12L4,15.31V20H8.69L12,23.31L15.31,20H20V15.31L23.31,12L20,8.69M10.85,12.65H13.15L12,9L10.85,12.65Z'/>
    </svg>
  </label>
</div>

2. 修改JavaScript代码

用类选择器替代ID选择器,同时使用事件委托确保动态生成的折叠栏按钮能触发事件,且所有按钮状态同步:

<script type='text/javascript'>//<![CDATA[
$(document).ready(function(){
  // 初始化深色模式状态
  $("body").toggleClass(localStorage.toggled);
  var isNight = $("body").hasClass("Night");
  // 同步所有按钮的选中状态
  $(".modedark-input").prop("checked", isNight);

  // 事件委托绑定点击事件,兼容动态元素
  $(document).on("click", ".modedark-input", function(){
    if(localStorage.toggled !== "Night"){
      $("body").toggleClass("Night", true);
      localStorage.toggled = "Night";
      $(".section-center").css("display", "block");
      $(".modedark-input").prop("checked", true);
    } else {
      $("body").toggleClass("Night", false);
      localStorage.toggled = "";
      $(".section-center").css("display", "");
      $(".modedark-input").prop("checked", false);
    }
  });
});//]]>
</script>

3. 验证CSS代码

原有CSS未依赖#modedark选择器,仅使用类选择器,无需修改即可兼容修改后的按钮。

修改完成后,所有深色模式按钮会同步状态并正常触发深色模式切换,包括折叠栏中的按钮。

内容的提问来源于stack exchange,提问作者kid123456

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 15:06:39