首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在单击复选框时阻止折叠(可折叠)关闭

如何在单击复选框时阻止折叠(可折叠)关闭
EN

Stack Overflow用户
提问于 2017-08-02 16:37:13
回答 1查看 2.2K关注 0票数 0

我希望用户能够在不关闭手风琴主体的情况下选中该复选框。

我已经尝试停止传播,但是我无法让它工作。

但是,我使用的是MaterializeCSS框架,它没有提供任何选项来覆盖此行为。

代码语言:javascript
复制
body {
  margin: 0;
  padding: 0;
}

.collapsible-header {
  position: relative;
}

.test {
  position: absolute;
  right: 0;
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<!-- Compiled and minified CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.100.1/css/materialize.min.css">

<!-- Compiled and minified JavaScript -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.100.1/js/materialize.min.js"></script>

<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<ul class="collapsible" data-collapsible="accordion">
  <li>
    <div class="collapsible-header"><i class="material-icons">filter_drama</i>First
      <span class="test">
        <input id="demo-1" name="demo-1" type="checkbox">
        <label for="demo-1"></label>
      </span>
    </div>
    <div class="collapsible-body"><span>Lorem ipsum dolor sit amet.</span></div>
  </li>
  <li>
    <div class="collapsible-header"><i class="material-icons">place</i>Second
      <span class="test">
        <input id="demo-2" name="demo-2" type="checkbox">
        <label for="demo-2"></label>
      </span>
    </div>
    <div class="collapsible-body"><span>Lorem ipsum dolor sit amet.</span></div>
  </li>
  <li>
    <div class="collapsible-header"><i class="material-icons">whatshot</i>Third
      <span class="test">
        <input id="demo-3" name="demo-3" type="checkbox">
        <label for="demo-3"></label>
      </span>
    </div>
    <div class="collapsible-body"><span>Lorem ipsum dolor sit amet.</span></div>
  </li>
</ul>

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-02 16:45:03

这很简单:只需停止单击事件从输入组传播(使用event.stopPropagation),该输入组在您的示例中具有类test

代码语言:javascript
复制
$(function() {
  $('.collapsible .test').on('click', function(e) {
    e.stopPropagation();
  });
});
代码语言:javascript
复制
body {
  margin: 0;
  padding: 0;
}

.collapsible-header {
  position: relative;
}

.test {
  position: absolute;
  right: 0;
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<!-- Compiled and minified CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.100.1/css/materialize.min.css">

<!-- Compiled and minified JavaScript -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.100.1/js/materialize.min.js"></script>

<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<ul class="collapsible" data-collapsible="accordion">
  <li>
    <div class="collapsible-header"><i class="material-icons">filter_drama</i>First
      <span class="test">
        <input id="demo-1" name="demo-1" type="checkbox">
        <label for="demo-1"></label>
      </span>
    </div>
    <div class="collapsible-body"><span>Lorem ipsum dolor sit amet.</span></div>
  </li>
  <li>
    <div class="collapsible-header"><i class="material-icons">place</i>Second
      <span class="test">
        <input id="demo-2" name="demo-2" type="checkbox">
        <label for="demo-2"></label>
      </span>
    </div>
    <div class="collapsible-body"><span>Lorem ipsum dolor sit amet.</span></div>
  </li>
  <li>
    <div class="collapsible-header"><i class="material-icons">whatshot</i>Third
      <span class="test">
        <input id="demo-3" name="demo-3" type="checkbox">
        <label for="demo-3"></label>
      </span>
    </div>
    <div class="collapsible-body"><span>Lorem ipsum dolor sit amet.</span></div>
  </li>
</ul>

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

https://stackoverflow.com/questions/45455683

复制
相关文章

相似问题

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