Bootstrap 切换不在 onclick LI 元素上工作
Bootstrap Toggle not working on onclick LI element
我正在使用 http://www.bootstraptoggle.com/ 的 bootstraptoggle 将复选框转换为切换。我已经包含了他们的脚本和 css 的 cdn。
https://jsfiddle.net/j04x6sjm/4/
在 <li>one</li>
上,我已通过 <input type="checkbox" data-toggle="toggle" />
调用了切换功能,但由于某种原因,它没有显示在 filldle 中。它虽然在本地工作。所以我想要实现的是能够 check/uncheck 单击 <li>
或复选框本身时的复选框。我可以使用 fiddle 中的脚本为普通复选框实现这一点。我怎样才能将它应用到切换的复选框呢?切换的 class 复选框在相应的 <li>
单击上也应该是 checked/unchecked。
非常感谢。
您没有正确导入 CSS
。我已经导入了它们,现在可以使用了。您可以使用 .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>
在修复你的 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();
});
我正在使用 http://www.bootstraptoggle.com/ 的 bootstraptoggle 将复选框转换为切换。我已经包含了他们的脚本和 css 的 cdn。
https://jsfiddle.net/j04x6sjm/4/
在 <li>one</li>
上,我已通过 <input type="checkbox" data-toggle="toggle" />
调用了切换功能,但由于某种原因,它没有显示在 filldle 中。它虽然在本地工作。所以我想要实现的是能够 check/uncheck 单击 <li>
或复选框本身时的复选框。我可以使用 fiddle 中的脚本为普通复选框实现这一点。我怎样才能将它应用到切换的复选框呢?切换的 class 复选框在相应的 <li>
单击上也应该是 checked/unchecked。
非常感谢。
您没有正确导入 CSS
。我已经导入了它们,现在可以使用了。您可以使用 .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>
在修复你的 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();
});