2016-02-19 5 views
5

मैं इस JsTreeJsTree चेकबॉक्स - जाँच घटना

enter image description here

इस कोड के साथ

:

var Tree = $("#MyTree"); 

     Tree.jstree({ 
      "core": { 
       "themes": { 
        "responsive": false, 
        "multiple" : false, 
       }, 
       "data": dataTree 
      }, 
      "types": { 
       "default": { 
        "icon": "icon-lg" 
       }, 
       "file": { 
        "icon": "icon-lg" 
       } 
      }, 
      "ui": { 
       "select_limit": 1, 
      }, 
      "plugins": ["wholerow", "types", "checkbox", "ui", "crrm", "sort"], 
      "checkbox": { 
       "three_state": false, 
       "real_checkboxes": false 
      } 
     }); 

मैं चयन और जांच कार्रवाई को अलग करने की जरूरत है, उपयोगकर्ता सभी नोड की जांच करना चाहिए वह चाहता है लेकिन समय के लिए केवल एक पंक्ति का चयन करें। अब जब मैं पंक्ति पर हर जगह क्लिक करता हूं तो वह उस पंक्ति का चयन करता है और उस नोड को चेक करता है, तो मुझे केवल उस चेकबॉक्स को चेक करने की आवश्यकता होती है जब उपयोगकर्ता उस पर क्लिक करता है।

मैं इतना घटना की कोशिश लेकिन केवल उस काम है:

Tree.on("changed.jstree", function (e, data) { }); 

कि चयन के दोनों कार्रवाई और जांच को पकड़ने।

कोई सुझाव?

उत्तर

13

यह उत्तर jstree के रिलीज 3 के बारे में है - यही वह वर्ष है जो आपको 2016 में उपयोग करना चाहिए। दुर्भाग्यवश आपका नमूना कोड, jstree rel 1 का उपयोग कर लगता है, और मैं इसके बारे में आपकी सहायता नहीं कर सकता।

रिहाई के लिए 3

सबसे पहले, खोल चयनित और जाँच राज्यों (checkbox.tie_selection: गलत) - the docs

फिर देखते हैं, check_node.jstree घटना का उपयोग

कार्य उदाहरण

var data1 = [{ 
 
     "id": "W", 
 
     "text": "World", 
 
     "state": { "opened": true }, 
 
     "children": [{"text": "Asia"}, 
 
        {"text": "Africa"}, 
 
        {"text": "Europe", 
 
        "state": { "opened": false }, 
 
        "children": [ "France","Germany","UK" ] 
 
     }] 
 
    }]; 
 

 
$('#Tree').jstree({ 
 
    core: { 
 
     data: data1, 
 
     check_callback: false 
 
    }, 
 
    checkbox: {  
 
     three_state : false, // to avoid that fact that checking a node also check others 
 
     whole_node : false, // to avoid checking the box just clicking the node 
 
     tie_selection : false // for checking without selecting and selecting without checking 
 
    }, 
 
    plugins: ['checkbox'] 
 
}) 
 
.on("check_node.jstree uncheck_node.jstree", function(e, data) { 
 
    alert(data.node.id + ' ' + data.node.text + 
 
     (data.node.state.checked ? ' CHECKED': ' NOT CHECKED')) 
 
})
<link href="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.2.1/themes/default/style.min.css" type="text/css" rel="stylesheet" /> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.2.1/jstree.min.js"></script> 
 
    <div id="Tree"></div>

+0

@LorenzoGrossi मैं एक झलकी वर्किंग – edc65

+0

जोड़ा मैंने डाउनलोड jstree 3.2.1, टुकड़ा मैं क्या करना है कि वास्तव में क्या है, लेकिन यह मेरी समाधान में काम नहीं करता है ... मेरी समाधान में ऐसा नहीं जब मैं बॉक्स पर क्लिक करता हूं तो चेक जोड़ता हूं लेकिन जब मैं पंक्ति –

+0

@LorenzoGrossi चुनता हूं तो इसे अपने सृजन पैरामीटर की समीक्षा करें। विशेष रूप से 'चेकबॉक्स' अनुभाग। – edc65

संबंधित मुद्दे