Eu estou lutando com jQuery jsTree plugin checkbox. Ok, descobri como lidar com events ao marcar ou desmarcar a checkbox de seleção. Se for útil, posso colar um código:
.bind("check_node.jstree", function(e, data) { if(data.rslt.obj !== undefined && data.rslt.obj.attr(\'id\') !== undefined) { jQuery.ajax({ async : false, type: "POST", dataType: "json", url: "adsmanager/adsfields/ajaxappendcategory", data: { "id" : data.rslt.obj.attr(\'id\'), "itemId" : "' . Yii::app()->getRequest()->getParam('id') . '", }, success: function(r) { if(r === undefined || r.status === undefined || !r.status) { data.rslt.obj.removeClass(\'jstree-checked\'); data.rslt.obj.addClass(\'jstree-unchecked\'); } else { niceBox(\'ok\'); } } }); } return true; })
Com isso tudo está ok, mas sei que não consigo encontrar em qualquer lugar como marcar as checkboxs de seleção na carga da tree, por exemplo, se eu estou usando jsTree como categoria selector para minhas notícias Item quando eu crio novas notícias tudo está ok e quando eu quero atualizar esse item eu preciso jsTree com categorias selecionadas e é que eu não consigo encontrar qualquer exemplo como selecionar nós no carregamento jsTree.
Qualquer ajuda com esta pergunta?
Se você estiver usando JSON_DATA, adicione class:jstree-checked
ao object attr do nó:
{ "data": "node name", "attr": { "id": "node id", "class":"jstree-checked" } }
Para os dados atuais da versão 3.2.1 e JSON do JSTREE, precisamos usar state: {checked: true}
e adicionar à configuração para a seção da checkbox de seleção
“checkbox”: {“tie_selection”: false}
este exemplo funciona bem
data : [ { "text" : "Root", state : { opened : true }, children : [ { "text" : "Child 2", state : { checked : true }, ]
Eu encontrei a solução, definindo a opção de plugin da checkbox de seleção two_state
para true
"checkbox" => array( "two_state" => true)
e, em seguida, se você estiver usando dados Xml, adicione class="jstree-checked"
em params
tudo bem 🙂
boa sorte 😉
Tente isto:
$("#jstree").jstree(true).load_node('#');
Isso funcionou para mim.
Aqui estão referências relacionadas:
Pode ser isso vai te ajudar mais – jstree v1
abaixo – para verificar e desmarcar o evento bind para jstree
Lado do servidor Asp.net MVC
"state" : { "selected" : true }
Seleciona uma checkbox de seleção
$('#frmt').jstree( { 'core' : { 'data' : [{ "text" : "root text", "state" : { "opened" : true } , "children" : [{ "text" : "child text", "id" : "idabc", "state" : { "selected" : true } , "icon" : "jstree-file", }] }, ]}, 'checkbox': { three_state: true }, 'plugins': ["checkbox"] });