2011-12-13 2 views
8

Attualmente sto lavorando su alcuni POC utilizzando il plug-in JS Tree e il relativo plug-in di casella di controllo. Per alcuni nodi devo controllare la casella di controllo per impostazione predefinita e disattivare qualsiasi ulteriore selection.I trovato la funzione di nascondere la casella di controllocasella di controllo disattiva jstree

.bind("load_node.jstree", function (e, data) { 
      $(this).find('li[rel!=file]').find('.jstree-checkbox:first').hide(); 
     }); 

invece di nascondere la casella di controllo completamente Voglio trovare un modo per disattivare casella di controllo per alcuni nodi

+0

consideri riscrivere la questione al fine di essere più undestandable. – athspk

risposta

10

Sarà necessario definire un tipo "disabilitato" (utilizzando il tipo di plugin) e quindi assegnare quel tipo al nodo desiderato.

Prendete per esempio questo "disabile" Tipo definizione:

  "types" : { 
       "types": { 
       "disabled" : { 
         "check_node" : false, 
         "uncheck_node" : false 
        } 
       } 
      } 

e il tipo assigment:

$.jstree._reference('#tree').set_type("disabled", "#node5"); 

Maggiori informazioni sui tipi di plugin può essere trovato here e si può anche controllare this google group with more info on disabling checkboxes

Spero che aiuti!

1

Grazie a mcabral e Tomasz per la loro risposta. Mi ha aiutato a ottenere il risultato giusto. Tuttavia, avevo bisogno di aggiungere alcune linee extra per farlo funzionare correttamente. Ecco quello che ho fatto:

È necessario aggiungere due attributi al <li> tag wich sono il rel='disable' per indicare jstree che questo sarà il nuovo tipo per la casella di controllo, invece di default e l'attributo class='jstree-checked' che sarà pre-check le caselle di controllo quando si carica l'albero.

$rel = ('if the checkbox need to be pre-checked')? 'rel="disabled" class="jstree-checked"' : ''; 
      echo '<li id="checkbox_id" '. $rel .'>'; 

poi sulla base della precedente risposta è necessario definire il tipo di 'disable' che è stato utilizzato nel attributo rel come segue:

.jstree({ 
        "types" : 
        { 
         "types" : { 
          "disabled" : { 
           "check_node" : false, 
           "uncheck_node" : false 
          } 
         } 
        }, 
     "plugins" : ["themes","html_data","ui","crrm","types", "checkbox"], 
        "checkbox" : { "two_state" : true }, 
    })