2012-09-07 29 views
5

ऐसा लगता है कि ऐसा करना आसान होना चाहिए, लेकिन jstree "data.rslt.obj.text()" विधि वर्तमान नोड के साथ-साथ अपने सभी बच्चों के पाठ को वापस करना पसंद करती है। मैंने यह पता लगाया है कि नोड (new_name) का नाम बदलने के साथ वर्तमान नोड नाम कैसे प्राप्त करें, लेकिन जब मैं बस इसे चुनता हूं तो मैं केवल वर्तमान नोड का पाठ कैसे प्राप्त करूं? साथ ही, मैं क्रोम या फायरबग का उपयोग कर जेस्ट्री में इन सभी विधियों और गुणों को कैसे प्राप्त करूंगा, इस बारे में किसी भी अंतर्दृष्टि की सराहना करता हूं। उदाहरण के लिए, जब मैं "data.rslt" चुनता हूं, तो उन तत्वों की सूची में कहां दिखाई देगी। धन्यवाद!मैं वर्तमान में चयनित नोड का पाठ jstree में कैसे प्राप्त करूं?

$("#RequirementsTree") 
    .bind("select_node.jstree", function(event, data) { 
      if(is_requirement_node(data)) 
      { 
       var ReqCheck = data.rslt.obj.attr("name"); 

       @* This is a REQUIREMENT *@ 
       if(ReqCheck == "requirement") 
       { 
        $("#RMSDoc_RequirementFlag").val("EDIT"); 
        $("#RMSDoc_RBSRequirement_RequirementsId").val(data.rslt.obj.attr("id").substring(4)); 
        $("#RMSDoc.RBSRequirement.RequirementsId").val(data.rslt.obj.attr("id").substring(4)); 
        $("#RMSDoc_RBSRequirement_RequirementsText").val($.trim(data.rslt.obj.text())); 
        $("#RMSDoc_TreeBranch_Text").val(""); 
        $("#HierarchyText").hide(); 
        $("#RMSDoc_TreeBranch_Text").hide(); 
        $("#ExistingTreeSubmit").val("@Model.RMSDoc.RMSEditReqButton.ConfigurableLabelDesc"); 

       } 
       else { 
        alert("Requirement node select error"); 
       } 
      } 
      @* This is a TREE BRANCH *@ 
      else 
      { 
       debugger; 
       $("#RMSDoc_RequirementFlag").val("ADD"); 
       $("#HierarchyText").show(); 
       $("#RMSDoc_TreeBranch_Text").show(); 
       $("#RMSDoc_TreeBranch_Text").val($.trim(data.rslt.obj.text())); 
       $("#RMSDoc_TreeBranch_id").val(data.rslt.obj.attr("id").substring(4)); 
       $("#RMSDoc_RBSRequirement_RequirementsText").val(""); 
       $("#ExistingTreeSubmit").val("@Model.RMSDoc.RMSCreateReqButton.ConfigurableLabelDesc"); 
      } 
    }) 
    .bind("create.jstree", function(e, data) { 

उत्तर

9

आप आप पर चेक बॉक्स के साथ jstree उपयोग कर रहे हैं चेकबॉक्स चयनकर्ताओं की length के लिए देख सकते हैं।

if ($('.jstree-checked').length == 1) { 
    alert('Checked Item -: ' + $('.jstree-checked').text()); 
} 

यदि आप चेकबॉक्स में नहीं हैं तो इस चयनकर्ता का उपयोग करें।

if ($('.jstree-clicked').length == 1) { 
    alert('Selected Item -: ' + $('.jstree-clicked').text()); 
} 

सभी वस्तुओं और jstree के लिए विधि की सूची प्राप्त करने के लिए, आप या तो क्रोम या jstree.js में Firebug में एक डिबग बिंदु डाल करने के लिए फ़ाइल .. उदाहरण के लिए आप .bind विधि पा सकते हैं की जरूरत है .js में और उस विशेष पंक्ति पर एक डीबग बिंदु डालें .. जब उस बिंदु पर हिट हो जाती है तो आप इसमें विधियों की झलक पाने के लिए तर्कों पर होवर कर सकते हैं ..

+0

धन्यवाद! वह काम किया। $ ('। jstree-clicked')। text() data.rslt.obj.text() का उपयोग करने से कहीं बेहतर है क्योंकि यह केवल उन नोड्स के पाठ को पकड़ता है जिन्हें आप सभी बच्चों को शामिल करने के बजाय क्लिक कर रहे हैं। – TheDude