我有一个复选框,当选中时显示我页面上的一些内容。如果我取消选中,内容是隐藏的.
我试图将该函数的内部行为隔离到另一个函数中,以便我可以重用它:
$('#some-id').change(function(){
if ($(this).is(":checked")){
show();
} else {
hide();
}
});
这是我尝试过的:
$('#some-id').change(function(){
toggle();
});
function toggle() {
$(this).is(":checked") ? show() : hide();
}
但是现在它只适用于隐藏取消选中字段时显示内容,但它不显示再次检查字段时的内容。
有语法错误吗?
只是一个复选框对象传递给切换函数,否则不会知道切换的代码。
let $checkBox = $('#somecheckbox'); //get the checkbox
$checkBox.change(function (){
toggle($checkBox) //pass the checkbox to function
});
function toggle($checkBox) {
$checkBox.is(":checked") ? show() : hide();
}
你也可以在没有jQuery的情况下使用普通js来完成:
let checkbox = document.getElementById('someId');
checkbox.addEventlistener('change', () => {toggle(checkbox)});
function toggle(checkbox) {
checkbox.checked ? hide() : show();
}
将function toggle()
中的$(this)
改为$('#some-id')
$('#some-id').change(function() {
toggle();
});
function toggle() {
$('#some-id').is(":checked") ? show() : hide();
}