У меня есть вопрос, похожий на Снимите флажок с родительского узла, если все дочерние элементы сняты с проверки в JQuery (с помощью этого решения), и попытался изменить его так, чтобы дочерние узлы также все снимали с проверки, если родительский контроль не проверен ( выше / ниже не получается).
JSFiddle для вышеперечисленного (http://jsfiddle.net/fRxVs/)
jQuery.each(jQuery('#treeList ul li').find(':checkbox'), function(){
jQuery(this).change(function (){
if (jQuery(this).is(':checked')) {
jQuery(this).parentsUntil('#treeList').siblings().filter('input:checkbox').attr('checked', true).trigger('change');
}else{
jQuery(this).parents('ul:first').siblings('input:checkbox').prop('checked', $(this).parent().siblings().children('input:checked').length).trigger('change');
}
});
});
Хотя я не уверен почему, но мне пришлось изменить prop
с последней строки на attr
, чтобы он по какой-то причине корректно работал как JSFiddle локально ...
В основном у меня есть 3 уровня настройки:
Grand-Parent
- Parent
-- Child
- Если
grandparent
отмечен / не отмечен, то его дети и внуки тоже должны быть отмечены / не отмечены.
- Если
parent
отмечен / не отмечен, его дочерние элементы должны быть отмечены / сняты вместе с его родителем.
- Если отмечен
children
, то должны быть проверены его родитель и дед (если не проверены дочерние элементы, родитель не должен проверяться).
Я пытаюсь изменить это на Континент, Страна, Регион - я думаю, вы поймете, если бы я просто сказал это ...
Спасибо