Ida*_*ter 29 javascript checkbox jquery jquery-plugins
如何以编程方式将jQuery Switchery复选框状态从checked 更改为unchecked(反之亦然)?
我尝试使用global_switch_sound.prop('checked', true)复选框元素,但它不起作用.
HTML:
<input id="sound-active-input" type="checkbox" />
Run Code Online (Sandbox Code Playgroud)
JavaScript的:
global_switch_sound = new Switchery(document.querySelector('#sound-active-input'));
Run Code Online (Sandbox Code Playgroud)
Ric*_*ert 40
试试这个:
$('.switchery').click();
Run Code Online (Sandbox Code Playgroud)
它应该触发一次点击和切换.或这个:
$('.switchery').trigger('click');
Run Code Online (Sandbox Code Playgroud)
Tom*_*m G 27
如果有人像我一样,想要一个超越".click()"DOM的解决方案.以下函数使用Switchery对象和布尔值来指示是应该选中还是取消选中开关(分别为true/false):
function setSwitchery(switchElement, checkedBool) {
if((checkedBool && !switchElement.isChecked()) || (!checkedBool && switchElement.isChecked())) {
switchElement.setPosition(true);
switchElement.handleOnchange(true);
}
}
Run Code Online (Sandbox Code Playgroud)
用法示例:
var mySwitch = new Switchery($('#mySwitchCheck')[0], {
size:"small",
color: '#0D74E9'
});
//Checks the switch
setSwitchery(mySwitch, true);
//Unchecks the switch
setSwitchery(mySwitch, false);
Run Code Online (Sandbox Code Playgroud)
希望这有助于其他人
小智 7
你可以简化这个:
// Uncheck: first set checked property to 'true', then uncheck to force UI update
$(".switchery").prop('checked', false).trigger("click");
// Check
$(".switchery").prop('checked', true).trigger("click");
Run Code Online (Sandbox Code Playgroud)
小智 6
首先,您必须在初始化期间将所有开关存储在阵列中
var elems = Array.prototype.slice.call(document.querySelectorAll('.js-switch'));
elems.forEach(function(html) {
switchery[html.getAttribute('id')] = new Switchery(html);
});
Run Code Online (Sandbox Code Playgroud)
并创建一个本地功能来像这样切换开关
toggleSwitchery(id)
{
var s = switchery[id];
s.setPosition(true);
s.handleOnchange(true);
}
Run Code Online (Sandbox Code Playgroud)
这对我有用。万一您遇到任何UI问题,即switch移了一些额外的像素,然后打开switchery.js并在Switchery.prototype.setPosition函数中将jack.offsetWidth替换为30
小智 5
尝试这个:
function changeSwitchery(element, checked) {
if ( ( element.is(':checked') && checked == false ) || ( !element.is(':checked') && checked == true ) ) {
element.parent().find('.switchery').trigger('click');
}
}
Run Code Online (Sandbox Code Playgroud)
用法示例:
var element = $('#sound-active-input');
changeSwitchery(element, false);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
45184 次 |
| 最近记录: |