首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery / js:无法使单选按钮单击

jquery / js:无法使单选按钮单击
EN

Stack Overflow用户
提问于 2016-11-30 05:02:03
回答 2查看 181关注 0票数 1

我有一个小初学者的问题,我不能让按钮内的DIV可点击。

有一个顶部的5个按钮线,工作完美。在单击第二行时,将出现(并会出现),但我不能单击它们。为什么会这样呢?

这是链接:https://jsfiddle.net/yello/1me8naee/

代码:

代码语言:javascript
复制
       $(document).ready(function() {
                $('#div1,#div2,#div3').hide();
                $('#mod-7').click(function() {
                  $('#div1').show('fast');
                  $('#div2').hide('fast');
                  $('#div3').hide('fast');
                });
                $('#mod-7p').click(function() {
                  $('#div1').show('fast');
                  $('#div2').hide('fast');
                  $('#div3').hide('fast');
                });
                $('#mod-6s').click(function() {
                  $('#div1').hide('fast');
                  $('#div2').show('fast');
                  $('#div3').hide('fast');
                });
                $('#mod-6p').click(function() {
                  $('#div1').show('fast');
                  $('#div2').hide('fast');
                  $('#div3').hide('fast');
                });
                $('#mod-se').click(function() {
                  $('#div1').hide('fast');
                  $('#div2').hide('fast');
                  $('#div3').show('fast');
                });
              });
代码语言:javascript
复制
.segmented {
  padding: 12px;
}

.segmented input[type=radio] {
  display: none;
}

.segmented label {
  border: outset 1px silver;
  padding: 2px 16px;
  margin-right: -5px;
  background: #ddd;
  cursor: pointer;
}

.segmented input:checked + label {
  border: inset 1px silver;
  background: #aaa;
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<nav class="segmented">
  <input type="radio" name="mod-1" value="Organisation" id="mod-7">
  <label for="mod-7">iPhone 7</label>

  <input type="radio" name="mod-1" value="Users" id="mod-7p">
  <label for="mod-7p">iPhone 7 Plus</label>

  <input type="radio" name="mod-1" value="Units" id="mod-6s">
  <label for="mod-6s">iPhone 6s</label>

  <input type="radio" name="mod-1" value="Tags" id="mod-6sp">
  <label for="mod-6sp">iPhone 6s Plus</label>

  <input type="radio" name="mod-1" value="Tags2" id="mod-se">
  <label for="mod-se">iPhone SE</label>


  <div align="center" style="padding:25px;width: 300px;">

    <div id="div1">
      <input type="radio" name="mem" id="32" value="32">
      <label for="mem">32Gb</label>
      <input type="radio" name="mem" id="128" value="128">
      <label for="mem">128Gb</label>
      <input type="radio" name="mem" id="256" value="256">
      <label for="mem">256Gb</label>
    </div>

    <div id="div2">
      <input type="radio" name="mem" id="32" value="32">
      <label for="mem">32Gb</label>
      <input type="radio" name="mem" id="128" value="128">
      <label for="mem">128Gb</label>
    </div>

    <div id="div3">
      <input type="radio" name="mem" id="32" value="32">
      <label for="mem">32Gb</label>
      <input type="radio" name="mem" id="64" value="64">
      <label for="mem">64Gb</label>
    </div>

  </div>

</nav>

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-30 05:13:04

你的代码运行得很好。只需将ids添加到标签中即可。

E.g

代码语言:javascript
复制
   <div id="div1">
      <input type="radio" name="mem" id="32" value="32">
      <label for="32">32Gb</label>
      <input type="radio" name="mem" id="128" value="128">
      <label for="128">128Gb</label>
      <input type="radio" name="mem" id="256" value="256">
      <label for="256">256Gb</label>
    </div>

https://jsfiddle.net/1me8naee/12/

另外,您应该有特定于每个型号的ids,否则就会出现冲突,例如32 iphone 6和32 iphone 7。

票数 1
EN

Stack Overflow用户

发布于 2016-11-30 05:19:30

for="mem3-64"中,您必须给出单选按钮的id,如下所示。

代码语言:javascript
复制
       $(document).ready(function() {
                $('#div1,#div2,#div3').hide();
                $('#mod-7').click(function() {
                  $('#div1').show('fast');
                  $('#div2').hide('fast');
                  $('#div3').hide('fast');
                });
                $('#mod-7p').click(function() {
                  $('#div1').show('fast');
                  $('#div2').hide('fast');
                  $('#div3').hide('fast');
                });
                $('#mod-6s').click(function() {
                  $('#div1').hide('fast');
                  $('#div2').show('fast');
                  $('#div3').hide('fast');
                });
                $('#mod-6p').click(function() {
                  $('#div1').show('fast');
                  $('#div2').hide('fast');
                  $('#div3').hide('fast');
                });
                $('#mod-se').click(function() {
                  $('#div1').hide('fast');
                  $('#div2').hide('fast');
                  $('#div3').show('fast');
                });
              });
代码语言:javascript
复制
.segmented {
  padding: 12px;
}

.segmented input[type=radio] {
  display: none;
}

.segmented label {
  border: outset 1px silver;
  padding: 2px 16px;
  margin-right: -5px;
  background: #ddd;
  cursor: pointer;
}

.segmented input:checked + label {
  border: inset 1px silver;
  background: #aaa;
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<nav class="segmented">
  <input type="radio" name="mod-1" value="Organisation" id="mod-7">
  <label for="mod-7">iPhone 7</label>

  <input type="radio" name="mod-1" value="Users" id="mod-7p">
  <label for="mod-7p">iPhone 7 Plus</label>

  <input type="radio" name="mod-1" value="Units" id="mod-6s">
  <label for="mod-6s">iPhone 6s</label>

  <input type="radio" name="mod-1" value="Tags" id="mod-6sp">
  <label for="mod-6sp">iPhone 6s Plus</label>

  <input type="radio" name="mod-1" value="Tags2" id="mod-se">
  <label for="mod-se">iPhone SE</label>


  <div align="center" style="padding:25px;width: 300px;">

    <div id="div1">
      <input type="radio" name="mem" id="mem1-32" value="32">
      <label for="mem1-32">32Gb</label>
      <input type="radio" name="mem" id="mem1-128" value="128">
      <label for="mem1-128">128Gb</label>
      <input type="radio" name="mem" id="mem1-256" value="256">
      <label for="mem1-256">256Gb</label>
    </div>

    <div id="div2">
      <input type="radio" name="mem" id="mem2-32" value="32">
      <label for="mem2-32">32Gb</label>
      <input type="radio" name="mem" id="mem2-128" value="128">
      <label for="mem2-128">128Gb</label>
    </div>

    <div id="div3">
      <input type="radio" name="mem" id="mem3-32" value="32">
      <label for="mem3-32">32Gb</label>
      <input type="radio" name="mem" id="mem3-64" value="64">
      <label for="mem3-64">64Gb</label>
    </div>

  </div>

</nav>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40880677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档