Jquery bootstraptogle如何防止更改事件
我在我的web应用程序中使用jquery插件bootstraptogle,在这里遇到了一个问题,我的代码如下所示Jquery bootstraptogle如何防止更改事件,jquery,input,Jquery,Input,我在我的web应用程序中使用jquery插件bootstraptogle,在这里遇到了一个问题,我的代码如下所示 <input id="toggle-event" type="checkbox" data-toggle="toggle"> <script> $(function() { $('#toggle-event').change(function() { if (some condition) { $('
<input id="toggle-event" type="checkbox" data-toggle="toggle">
<script>
$(function() {
$('#toggle-event').change(function() {
if (some condition) {
$('#console-event').bootstrapToggle('toggle');
}
})
})
</script>
基本上我想做的是当一些人点击复选框,我会做一些检查,如果条件失败,我会切换复选框设置回来
这里的问题是在检查失败后,复选框向后切换,它再次触发更改事件,然后陷入死循环,如果条件失败,是否有方法防止更改事件触发?谢谢。在复选框中添加一个单击处理程序,在那里签入并调用。这将防止复选框上发生默认操作,该复选框正在检查并触发更改事件
<input id="toggle-event" type="checkbox" data-toggle="toggle">
<script>
$(function() {
$('#toggle-event').on("click", function(e) {
if (some condition) {
e.preventDefault();
}
}).change(function() {
$('#console-event').bootstrapToggle('toggle');
})
</script>
注意数据样式=。。属性,以防止启动Bootstraptogle默认事件。请提供更多详细信息,即您正在应用的条件。现在我可以告诉你,你可以使用e.preventDefault来停止事件传播。我尝试过使用click事件,但没有触发,似乎它没有传播到Bootstraptogle。我已经更新了我的评论,介绍了如何使用Bootstraptogle处理此问题。
<input id="toggle-event" type="checkbox" data-toggle="toggle" data-style="testtoggle">
$(document).on('click.bs.toggle', 'div.testtoggle', function(e) {
e.stopImmediatePropagation()
var $checkbox = $(this).sibling('input[type=checkbox]')
if (some condition) {
$checkbox.bootstrapToggle('toggle')
}
})