2014-01-17 195 views

回答

4

嘗試是這樣的:

$('.multiselect-group').before('<input type="checkbox" />'); 
$(document).on('click', '.multiselect-group', function(event) { 
    var checkAll = true; 
    var $opts = $(this).parent().nextUntil(':has(.multiselect-group)'); 
    var $inactive = $opts.filter(':not(.active)'); 
    var $toggleMe = $inactive; 
    if ($inactive.length == 0) { 
     $toggleMe = $opts; 
     checkAll = false; 
    } 
    $toggleMe.find('input').click(); 
    $(this).parent().find('input').attr('checked', checkAll); 
    event.preventDefault(); 
}); 
+0

所有選項看調整複選框對齊。唯一的問題是,如果您選擇optgroup複選框下拉菜單會自動關閉。任何工作? –

+0

我相信這是來自父列表上的單擊事件處理程序。使用event.preventDefault()。我會更新答案來展示這一點。 – PatrickDelancy

+0

任何幫助將不勝感激。 –

4

您可以使用event.stopPropagation(); 我不能評論由於較少的聲譽。 希望這會有所幫助。

1

當我檢查一個選項組,然後取消選中它,如果我想再次檢查它,它將檢查組中的所有選項,但該組保持未選中狀態。

爲了使選項組爲幾次重試後選中/取消正常顯示,請更換:

$(this).parent().find('input').**attr**('checked', checkAll); 

$(this).parent().find('input').**prop**('checked', checkAll);