当检查了三个复选框(#PCOF,#PICTMI或#PCRM)中的任何一个时,我有一个id为“PCsetup”的div设置为滑动打开,但是如果已经检查了三个中的一个或两个,并且用户检查另一个复选框,我想在滑动打开之前结束该功能,因为它实际上会关闭“PCsetup”div。如何检查其他两个复选框是否有功能检查,如果不是,请将div滑下?这是我到目前为止所做的:
$(function() {
$("input[type=checkbox]").on('click', function(){
if ($("#PCOF").is(':checked'))|| ($("#PCRM").is(':checked')) {
return;
} else if $('#PCTMI').is(':checked')){
$("#PCsetup").slideDown("slow");
} else {
$("#PCsetup").slideUp("slow");
}
});
答案 0 :(得分:0)
以下几点:1。示例中的匿名函数未关闭,因此代码无效。 2.我很难完全按照你想要完成的工作,但是如果检查了任何复选框的组合,你就会想要显示div,如果没有选中则隐藏它。这将得到你的结果:
$(document).ready(function() {
$(function() {
$('#PCOF, #PCTMI, #PCRM').on('click', function() {
var numChecked = $('#PCOF:checked, #PCTMI:checked, #PCRM:checked').length;
if (!numChecked) {
$('#PCsetup:visible').slideUp('slow');
} else {
$('#PCsetup').slideDown('slow');
}
});
});
});
答案 1 :(得分:0)
类似
$(function() {
var $chks = $('#PCOF, #PCRM, #PCTMI');
$chks.on('click', function(){
var checked = $chks.filter(':checked').length > 0, visible = $("#PCsetup").is(':visible');
console.log('dd', checked, visible)
if (checked && !visible) {
$("#PCsetup").finish().slideDown("slow");
} else if(!checked && visible){
$("#PCsetup").finish().slideUp("slow");
}
});
});
演示:Fiddle