将禁用属性转换为 true 或 false switchery

Jul*_*eto 2 javascript jquery

我使用这个不错的 iOS 复选框插件Switchery iOS checkbox。默认情况下,该复选框处于禁用状态。现在,如果用户单击具有“btn_modify”类的按钮,我想启用 switchery 复选框,如果用户单击具有“btn_cancel”类的按钮,则将其禁用。下面是我的代码参考。

<input type="checkbox" name="" value="" class="js-switch" checked />
<button class="btn_modify">Modify</button>
<button class="btn_cancel">Cancel</button>
Run Code Online (Sandbox Code Playgroud)

并激活开关

//switchery
var elems = Array.prototype.slice.call(document.querySelectorAll('.js-switch'));
elems.forEach(function(html) {
  var switchery = new Switchery(html, { size: 'small', disabled: true, disabledOpacity: 1.0 });
});
Run Code Online (Sandbox Code Playgroud)

和我的尝试

$(".btn_modify").click(function(){
    $(".js-switch").attr("disabled", false);
});

$(".btn_cancel").click(function(){
    $(".js-switch").attr("disabled", true);
});
Run Code Online (Sandbox Code Playgroud)

但遗憾的是没有工作,任何帮助、想法、线索、建议、建议将不胜感激。谢谢!

Vai*_*ool 7

var elem = document.querySelector('.js-dynamic-state');
var switchery = new Switchery(elem);

document.querySelector('.js-dynamic-disable').addEventListener('click', function() {
  switchery.disable();
});

document.querySelector('.js-dynamic-enable').addEventListener('click', function() {
  switchery.enable();
});
Run Code Online (Sandbox Code Playgroud)

在你的情况下,它将是

var elem = document.querySelector('.js-switch');
var switchery = new Switchery(elem);

document.querySelector('.btn_cancel').addEventListener('click', function() {
  switchery.disable();
});

document.querySelector('.btn_modify').addEventListener('click', function() {
  switchery.enable();
});
Run Code Online (Sandbox Code Playgroud)

第二个选项

CSS

.disabled{
 opacity: 0.5;
 pointer-events: none;    
}
Run Code Online (Sandbox Code Playgroud)

JS

$(".btn_modify").on("click",function(){
        $(".switchery").removeClass("disabled");
    });

$(".btn_cancel").on("click",function(){
    $(".switchery").addClass("disabled");
});
Run Code Online (Sandbox Code Playgroud)

Jsfiddle 演示

参考http://abpetkov.github.io/switchery/