Javascript Switchery作为单选按钮,无法切换回
现在使用switchery复选框制作播放列表, 已经把它变成了一个单选按钮 但它不能向后切换 如何使交换机返回空闲状态/未检查状态Javascript Switchery作为单选按钮,无法切换回,javascript,jquery,checkbox,toggle,switchery,Javascript,Jquery,Checkbox,Toggle,Switchery,现在使用switchery复选框制作播放列表, 已经把它变成了一个单选按钮 但它不能向后切换 如何使交换机返回空闲状态/未检查状态 >>我的小提琴演示很难确定您的问题,但如果我理解得很好,您希望取消选中单选按钮 嗯,你不能。单选按钮不会被取消选中。单选按钮池的含义是“仅选择以下选项之一”。取消选中单选按钮意味着用户选择零选项,这是不允许的 来自维基百科: 单选按钮或选项按钮是一种图形控制元素,允许用户仅选择预定义选项集中的一个 一开始可能没有选择组中的任何单选按钮。这个未选择的状态不能通过与单选
>>我的小提琴演示很难确定您的问题,但如果我理解得很好,您希望取消选中单选按钮 嗯,你不能。单选按钮不会被取消选中。单选按钮池的含义是“仅选择以下选项之一”。取消选中单选按钮意味着用户选择零选项,这是不允许的 来自维基百科: 单选按钮或选项按钮是一种图形控制元素,允许用户仅选择预定义选项集中的一个 一开始可能没有选择组中的任何单选按钮。这个未选择的状态不能通过与单选按钮小部件交互来恢复,尽管可以通过其他用户界面元素来恢复
如果你想选择零选项,你需要使用的是一个。我迟到了,但我的解决方案是:
var $switches = [];
var elems = Array.prototype.slice.call();
$.each(document.querySelectorAll('.js-switch'),function(i,html) {
$switches[html.name] = new Switchery(html,{size: 'small',});
});
$('input.js-switch').on('change', function () {
if (this.checked) {
$.each(document.querySelectorAll('input.js-switch:not([name="' + this.name + '"])'),
function (i, e) {
switcherySetChecked($switchers[e.name], false)
});
}
});
function switcherySetChecked(switcher, check) {
var curr = $(switcher.element).prop('checked');
var disabled = $(switcher.element).prop('disabled');
if (disabled) {
switcher.enable();
}
if (check) {
if (curr) {
$(switcher.element).prop('checked',false);
}
$(switcher.element).trigger('click');
} else {
if (!curr) {
$(switcher.element).prop('checked', true);
}
$(switcher.element).trigger('click');
}
if (disabled) {
switcher.disable();
}
}
寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:如何为您的建议创建一个.thx,已经在代码中编辑了更详细的问题@BSMPi已经通过javascript取消选中它,只有这里的开关不起作用的是@Right leg
var $switches = [];
var elems = Array.prototype.slice.call();
$.each(document.querySelectorAll('.js-switch'),function(i,html) {
$switches[html.name] = new Switchery(html,{size: 'small',});
});
$('input.js-switch').on('change', function () {
if (this.checked) {
$.each(document.querySelectorAll('input.js-switch:not([name="' + this.name + '"])'),
function (i, e) {
switcherySetChecked($switchers[e.name], false)
});
}
});
function switcherySetChecked(switcher, check) {
var curr = $(switcher.element).prop('checked');
var disabled = $(switcher.element).prop('disabled');
if (disabled) {
switcher.enable();
}
if (check) {
if (curr) {
$(switcher.element).prop('checked',false);
}
$(switcher.element).trigger('click');
} else {
if (!curr) {
$(switcher.element).prop('checked', true);
}
$(switcher.element).trigger('click');
}
if (disabled) {
switcher.disable();
}
}