Javascript 具有多个相同输入的引导切换无效
具有多个相同输入的引导切换不工作,除非未按第一个输入。。但并不是所有的都被选中/取消选中 我做了一些小的 我需要做的是,如果我按下一个,所有其他的都会有相同的状态Javascript 具有多个相同输入的引导切换无效,javascript,jquery,html,twitter-bootstrap-3,Javascript,Jquery,Html,Twitter Bootstrap 3,具有多个相同输入的引导切换不工作,除非未按第一个输入。。但并不是所有的都被选中/取消选中 我做了一些小的 我需要做的是,如果我按下一个,所有其他的都会有相同的状态 $(document).ready(function(){ $('.testClass').on('change', function() { if($(this).prop('checked')) { $('.testClass').each(function(key, val) { $(va
$(document).ready(function(){
$('.testClass').on('change', function() {
if($(this).prop('checked')) {
$('.testClass').each(function(key, val) {
$(val).bootstrapToggle('on');
});
} else {
$('.testClass').each(function(key, val) {
$(val).bootstrapToggle('off');
});
}
})
});
有什么建议吗?只需从代码中删除$('.testClass')。每个(函数(键,val){
$(document).ready(function(){
$('.testClass').on('change', function() {
if($(this).prop('checked')) {
$(this).bootstrapToggle('on');
} else {
$(this).bootstrapToggle('off');
}
})
});
看起来这段代码导致了一个内循环,我对这个插件不太熟悉,但这里有一个解决方法。如果我理解你的目标,当一个切换被更改时,你想将所有切换设置为相同的状态
$(document).ready(function(){
$('.toggle-group').on('click', function(e) {
// wait for the plugin to update the actual checkbox
setTimeout(function(){
// check if the checkbox is checked or not
var state = ( $(e.currentTarget).prev('input')[0].checked ) ?
'on' : 'off';
// update all the bootstrapToggle checkbox instances with the new
// state
$('.testClass').each(function(key, val) {
$(val).bootstrapToggle(state);
});
}, 50);
});
});
我认为正在发生的是在示例代码中的“更改”事件在循环中不断刷新。这个答案远不是一个优雅的解决方案,但突出了这个问题。setTimeout允许插件在测试前更新复选框,因为它看起来不像Bootstraptogle接受任何回调。@digital pollution刚刚告诉了我这个解释,但我认为我发现了一个更好的方法r解决方案。它基本上在开始时删除('change')事件,并在结束时将其添加回
var-toggleButtons=函数toggleButtons(){
$('.testClass').off('change');
if($(this.prop('checked')){
$('.testClass')。不是($(this))。每个(函数(键,val){
$(val).bootstrapToggle('on');
});
}否则{
$('.testClass')。不是($(this))。每个(函数(键,val){
$(val).bootstraptogle('off');
});
}
$('.testClass')。on('change',toggleButtons);
}
$(文档).ready(函数(){
$('.testClass')。on('change',toggleButtons);
});
我一直反对on和offing事件绑定,但这只是个人偏好,而不是任何技术原因。这个答案同样好,应该由OP.nice考虑!它起作用了…;)只是有趣的原因,当我使用$(文档)。on('change','.testClass',togglebutions)
I getcompiled_part_1.js:3 Uncaught TypeError:((n.event.special[g.origType]|{}).handle | | g.handler)。apply不是一个函数
而是在使用$(document.ready)时。ready(func…)
一切正常吗?:O@Scorpioniz我认为这与传播有关。看一看