Начиная с версии JSTree 3.1.1, я бы сделал следующее:
$('#data').jstree({
'core' : {
'data' : [
{ "text" : "Root node", "children" : [
{ "text" : "Child node 1" },
{ "text" : "Child node 2" }
]},
{ "text" : "Root node 2", "children" : [
{ "text" : "Child node 1" },
]}
]
},
'checkbox': {
three_state: false,
cascade: 'up'
},
'plugins': ["checkbox"]
});
JSFiddle Demo
Обратите внимание, что магияздесь происходит с параметрами флажка.
Из документации:
three_state : логическое значение, указывающее, должны ли флажки каскадироваться и иметь неопределенное состояние.По умолчанию true
.
каскад : этот параметр определяет, как применяются каскадные и неопределенные узлы.Если в строке 'up' - включено каскадное увеличение, если в строке 'down' - включено каскадное уменьшение, если в строке 'undefined' - будут использоваться неопределенные узлы.Если для three_state
установлено значение true
, для этого параметра автоматически устанавливается значение «вверх + вниз + не определено».По умолчанию используется значение ''.
Эта документация была найдена внутри исходного кода для v.3.1.1
EDIT Я только что проверил v3.3.0, ихотя документация для этих атрибутов изменилась (на мой взгляд, в худшую сторону), код работает точно так же .Между тем, похоже, что эти атрибуты перечислены в их API: three_state и cascade , и на момент написания, похоже, документация лучше, чем в исходном коде.
Имейте в виду, что если у вас есть несколько дочерних узлов под родителем, проверка только одного из детей будет , а не проверять родителя.Все узлы должны быть проверены, чтобы вступить в силу для родителя.
Надеюсь, это поможет!