2013-08-25 29 views
1

我有一個ID爲「PCsetup」的div設置爲在選中三個複選框(#PCOF,#PCTMI或#PCRM)中的任何一個時滑動打開,但如果選擇一個三個中的兩個已經被檢查,並且用戶檢查另一個複選框,我想在滑動打開之前結束該功能,因爲它實際上會關閉「PCsetup」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

你能不能讓你有jsFiddle.net什麼? – cgatian

+0

該代碼在語法上不是有效的。 – Jon

回答

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'); 
     } 
    }); 
    }); 
}); 

http://jsbin.com/IsutuhI/3

+0

非常感謝,完美的作品! – swiftsly

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

相關問題