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

iOS端基于Select选项显示/隐藏Div功能失效问题

Fix iOS Select Toggle Issue & Switch to Single-Select Mode

我来帮你搞定这个在iOS上失效的select切换div问题,同时把多选模式改成单选,下面是具体的解决方案:

问题根源

你的代码有两个核心问题:

  • 用了带multiple属性的select,iOS原生会把它处理成可多选的下拉框,必须手动取消之前的选中项才能切换,不符合你的单选需求
  • 绑定的input/propertychange事件在iOS Safari上对select元素的支持不完善,导致切换选项时无法触发显示/隐藏逻辑

1. 把Select改成单选模式

直接移除select标签里的multiple和size="3"属性,这样就变成标准的单选下拉框,iOS上会自动处理成单选行为,不用手动取消之前的选项:

<select id="storeselector" tabindex="2">
  <option value="level-lg"> Lower Ground </option>
  <option value="level-g"> Ground Floor </option>
  <option value="level-one"> Level 1 </option>
</select>

2. 修复事件绑定适配iOS

将原来的input propertychange事件替换成标准的change事件,这是select元素状态变更的通用事件,在所有浏览器(包括iOS)都能稳定触发:

$(function() {
  $('#storeselector').on('change', function() {
    // 先隐藏所有店铺区块
    $('.store-hide').hide();
    // 显示选中项对应的区块
    $('#' + $(this).val()).show();
  });
});

3. 可选:优化初始显示状态

如果希望页面加载时默认显示第一个选项对应的区块,可以给第一个option加上selected属性,确保初始状态正确:

<select id="storeselector" tabindex="2">
  <option value="level-lg" selected> Lower Ground </option>
  <option value="level-g"> Ground Floor </option>
  <option value="level-one"> Level 1 </option>
</select>

完整修复后的代码

HTML

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="storeselector" tabindex="2">
  <option value="level-lg" selected> Lower Ground </option>
  <option value="level-g"> Ground Floor </option>
  <option value="level-one"> Level 1 </option>
</select>
<div id="level-lg" class="store-hide store-block" style="display: block">
  <div class="col-lg-12">
    <span class="i-store"> LG </span>
    <img class="store-img" src="https://www.ctshirts.com/on/demandware.static/-/Sites/default/dw468e879c/UK/SS18/Book6/hp-recs1_UK.jpg" alt="" title="">
  </div>
</div>
<div id="level-g" class="store-hide store-block">
  <div class="col-lg-12">
    <span class="i-store"> G </span>
    <img class="store-img" src="https://www.ctshirts.com/on/demandware.static/-/Sites/default/dwc0f6b72a/UK/SS18/Book6/hp-recs2_UK.jpg" alt="" title="">
  </div>
</div>
<div id="level-one" class="store-hide store-block">
  <div class="col-lg-12">
    <span class="i-store"> 1 </span>
    <img class="store-img" src="https://www.ctshirts.com/on/demandware.static/-/Sites/default/dwe06b0b29/UK/SS18/Book6/hp-recs3_UK.jpg" alt="" title="">
  </div>
</div>

CSS

.store-right { float: right; }
.i-store {
  font-size: 3rem;
  font-family: "Avenir Next", sans-serif;
  font-style: normal;
  font-weight: 600;
  color: inherit;
  text-rendering: optimizeLegibility;
  line-height: 1.2;
  display: block;
  margin: auto;
  text-align: right;
  padding-right: 4%;
}
.store-img { max-width: 1150px; width: 100%; margin: auto; display: block; }
.store-hide { display: none; }
.store-block { width: 100%; }

JavaScript

$(function() {
  $('#storeselector').on('change', function() {
    $('.store-hide').hide();
    $('#' + $(this).val()).show();
  });
});

这些修改的优势:

  • 单选模式符合需求,iOS用户不用再手动取消之前的选中项
  • change事件的兼容性更好,解决了iOS上事件不触发的问题
  • 代码逻辑更简洁,避免了不必要的事件监听

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:57:17