在IOS Safari上使用Select(下拉列表)显示/隐藏JQuery问题

时间:2017-08-02 10:46:30

标签: javascript jquery html ios

我正在努力解决这个问题,并搜遍了一个有效的答案。该问题仅适用于我可以测试的IOS设备。

我有一个带选项的select(下拉)元素。当用户选择一个选项时,将显示与该选项对应的div。该脚本根据需要显示和隐藏div。

在IOS 10上使用Safari时出现问题。旋转轮显示选项,但在选择选项并单击“完成”时,没有任何反应。

Onclick事件不会发生火灾或其他事情。

在桌面浏览器上正常工作。

非常感谢任何帮助。



function showonlyone(thechosenone) {
  $('.hidebox').each(function(index) {
    if ($(this).prop("id") == thechosenone) {
      $(this).show(200);
    } else {
      $(this).hide(600);
    }
  });
}

.hidebox {
  display: none;
  cursor: pointer;
}

.showbox {
  display: block;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id="selection">
  <select class="form-control">
      <option onclick="showonlyone('newboxes1');">Option 1</option>
      <option onclick="showonlyone('newboxes2');">Option 2</option>
      <option onclick="showonlyone('newboxes3');">Option 3</option>
      <option onclick="showonlyone('newboxes4');">Option 4</option>
  </select>
</div>

<div id="container" style="margin-top:20px">
  <div class="hidebox showbox" id="newboxes1">Selected 1</div>
  <div class="hidebox" id="newboxes2">Selected 2</div>
  <div class="hidebox" id="newboxes3">Selected 3</div>
  <div class="hidebox" id="newboxes4">Selected 4</div>
</div>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:0)

尝试使用其他功能。 example here

答案 1 :(得分:0)

试试这个:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>function showonlyone(thechosenone) {

  $('.hidebox').each(function(index) {

    if ($(this).attr("id") == thechosenone) {
      $(this).show(200);
    } else {
      $(this).hide(600);
    }
  });
}</script>

使用attr获取属性值。

<div id="selection">
  <select class="form-control" onchange="showonlyone(this.value)">
      <option value="newboxes1">Option 1</option>
      <option value="newboxes2">Option 2</option>
      <option value="newboxes3">Option 3</option>
      <option value="newboxes4">Option 4</option>
  </select>
</div>

<div id="container" style="margin-top:20px">
  <div class="hidebox showbox" id="newboxes1">Selected 1</div>
  <div class="hidebox" id="newboxes2">Selected 2</div>
  <div class="hidebox" id="newboxes3">Selected 3</div>
  <div class="hidebox" id="newboxes4">Selected 4</div>
</div>

在select标签中使用onchange而不是使用click for options。