【问题标题】:Bootstrap Toggle not working on onclick LI elementBootstrap Toggle 不适用于 onclick LI 元素
【发布时间】:2016-08-08 13:49:48
【问题描述】:

我正在使用来自http://www.bootstraptoggle.com/ 的引导切换将复选框转换为切换。我已经为脚本和 css 包含了他们的 cdn。

https://jsfiddle.net/j04x6sjm/4/

<li>one</li> 上,我通过<input type="checkbox" data-toggle="toggle" /> 调用了切换功能,但由于某种原因,它没有显示在填充中。它虽然在本地工作。所以我想要实现的是能够在单击<li> 或复选框本身时选中/取消选中复选框。我可以使用小提琴中的脚本为普通复选框实现这一点。我怎样才能将它应用到切换的复选框呢?切换的类复选框也应在相应的<li> 点击时选中/取消选中。

非常感谢。

【问题讨论】:

  • 我认为 OP 正在谈论将复选框转换为像切换控件一样切换

标签: jquery html css twitter-bootstrap toggle


【解决方案1】:

在修复你的 jquery 之前......

$('ul.list-group1 li').on('click', function() {
 var $cb = $(this).find(":checkbox");
 if (!$cb.prop("checked")) {
    $cb.prop("checked", true);
 } else {
    $cb.prop("checked", false);
 }
});

$('ul.list-group1 li input').on('click', function(event) {
   event.stopPropagation();
});

【讨论】:

    【解决方案2】:

    您没有正确导入CSSs。我已经导入了它们,现在它正在工作。您可以使用.bootstrapToggle('toggle')方法手动切换开关(来自官方页面)。

    $('.list-group-item1-text').click(function() {  
        var $cb = $(this).parent().find(":checkbox");
        $cb.bootstrapToggle('toggle');
        //if (!$cb.prop("checked")) {
          //  $cb.prop("checked", true);
        //} else {
        //    $cb.prop("checked", false);
    });
    ul{
      list-style:none;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
    <link href="https://gitcdn.github.io/bootstrap-toggle/2.2.2/css/bootstrap-toggle.min.css" rel="stylesheet"/>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    <script src="https://gitcdn.github.io/bootstrap-toggle/2.2.2/js/bootstrap-toggle.min.js"></script>
    <ul class="list-group1">
      <li class="list-group-item1">
        <input type="checkbox" data-toggle="toggle" />
        <span class="list-group-item1-text" >One</span>
      </li>
      <li class="list-group-item1">
        <input type="checkbox" data-toggle="toggle" />
        <span class="list-group-item1-text">Two</span>
      </li>
      <li class="list-group-item1">
        <input type="checkbox" data-toggle="toggle" />
        <span class="list-group-item1-text">Three</span>
      </li>
      <li class="list-group-item1">
        <input type="checkbox" data-toggle="toggle" />
        <span class="list-group-item1-text">Four</span>
      </li>
      <li class="list-group-item1">
        <input type="checkbox" data-toggle="toggle" />
        <span class="list-group-item1-text">Five</span>
      </li>
    </ul>

    【讨论】:

    • 感谢您修复 CSS。如何转换基于选中/未选中的开关切换。谢谢
    • 我有点困惑。你能解释一下吗
    • 你看我用&lt;input type="checkbox" data-toggle="toggle" /&gt; 代替&lt;li&gt;One&lt;/li&gt;,如果你点击实际的复选框或开关(不确定它是否调用它),它就会起作用。 On 和 Off 开关。所以当复选框被选中时它的 On 。因此,当我单击具有该功能的 &lt;li&gt; 时,我也希望它能够切换。在这种情况下,&lt;li&gt;One
    • 谢谢一百万。所以我应该避免使用if (!$cb.prop("checked")) { $cb.prop("checked", true); } else { $cb.prop("checked", false); 再次感谢队友!
    • 欢迎!!!我不会说避免,但是如果您喜欢这种方式,请这样做..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-30
    • 2019-12-14
    • 1970-01-01
    相关资源
    最近更新 更多