javascript - मैं jquery Jstree में सभी नोड्स कैसे खोलूं?




(6)

Html डेटा का उपयोग करते समय 'आप इसे शुरू में विस्तारित करने के लिए किसी भी <li> तत्व पर jstree- ओपन क्लास सेट कर सकते हैं, ताकि उसके बच्चे दिखाई दें।' - https://www.jstree.com/docs/html/

<li class="jstree-open" id="node_1">My Open Node</li>

मैं निम्नलिखित कोड का उपयोग कर रहा हूँ:

$("#treeview").jstree();
$("#treeview").jstree('open_all');

निम्नलिखित HTML के साथ:

<div id="treeview">
  <ul>
    <li>
      <a href="#">rubentebogt</a>
      <ul>
        <li>
          <a href="#" onclick="goTo('index.php?module=alarm&amp;pagina=dashboard&amp;id=6',false);">Beneden</a>
        </li>
        <li>
          <a href="#" onclick="goTo('index.php?module=alarm&amp;pagina=dashboard&amp;id=7',false);">Boven</a>
        </li>
      </ul>
    </li>
  </ul>
</div>

मेरी समस्या यह है कि सभी नोड्स बंद रहते हैं, मैं उन्हें jstree ('open_all') के साथ खोलने के लिए नहीं मिल सकता;


आप एनीमेशन को खोलने और बंद करने के लिए भी आवेदन कर सकते हैं:

$(document)
    .on("click", "#open-all-folders", function () {
        // param1 set to null to open/close all nodes
        // param2 is the duration in milliseconds
        $("#tree-ref").jstree().open_all(null, 200);
    })
    .on("click", "#close-all-folders", function () {
        $("#tree-ref").jstree().close_all(null, 200);
    });

(या इसी तरह .on('ready.jstree', function() { // code here } ) पर लागू होते हैं;


मैं jstree और Chrome के संस्करण 3 का उपयोग कर रहा हूं। लोड की गई घटना ने मेरे लिए काम नहीं किया, लेकिन तैयार घटना ने, jstree उदाहरण बनने के बाद भी किया:

$('#treeview').on('ready.jstree', function() {
    $("#treeview").jstree("open_all");          
});

http://www.jstree.com/api/#/?q=.jstree%20Event&f=ready.jstree


मैंने यहाँ सभी उत्तरों की कोशिश की और उन्होंने jsTree (v3.3.4) के साथ काम नहीं किया। क्या काम किया load_node.jstree ईवेंट:

    .on( 'load_node.jstree', function () {
      jstree.jstree( "open_all" );
    } )

सरल कोड का उपयोग करें

$(".jstree").jstree().on('loaded.jstree', function () {
     $(".jstree").jstree('open_all');
})

JsTree प्रलेखन "उप इष्टतम" है। डॉक्स स्पष्ट रूप से यह नहीं बताता है कि आरंभीकरण अतुल्यकालिक रूप से काम करता है। वहाँ core.loaded() :

एक डमी फ़ंक्शन, जिसका उद्देश्य केवल भरी हुई घटना को ट्रिगर करना है। ट्री के रूट नोड्स लोड होने के बाद एक बार इस घटना को चालू कर दिया जाता है, लेकिन इससे पहले कि शुरुआत में सेट किए गए किसी भी नोड को खोल दिया जाए।

यह सुझाव देता है कि एक घटना loaded.jstree है। पेड़ के सेटअप होने के बाद loaded.jstree को निकाल दिया गया है। आप अपने सभी नोड्स खोलने के लिए उस ईवेंट में हुक कर सकते हैं:

var $treeview = $("#treeview");
$treeview
  .jstree(options)
  .on('loaded.jstree', function() {
    $treeview.jstree('open_all');
  });






jstree