मुझे जेएसटीरी और अजाक्स के साथ एक अजीब समस्या है।जेएस ट्री - select_node काम नहीं कर रहा
मैं एक अजाक्स/पीएचपी अनुरोध जो HTML का उपयोग कर (यूएल, ली, एक टैग के साथ) उत्पन्न करता है के माध्यम से मेरी पेड़ उत्पन्न ...
$.ajax({
url: 'ajaxTreeView.php?method=edit&partid='+partId,
cache: false,
success: function(tree)
{
$('#treeViewer').html(tree);
}});
और का उपयोग कर कोड पर JStree को सक्रिय ...
options =
{
"core": { animation: 120 },
"themes": { theme: 'corral', dots: true },
"types":
{
"types":
{
"parent": { "icon": { "image": "images/custom/Legend/node_select.png" } },
"child": { "icon": { "image": "images/custom/Legend/node_select_child.png" } },
"current": { "icon": { "image": "images/custom/Legend/node.png" } }
}
},
"plugins": [ "html_data", "types", "themes", "ui", "contextmenu", "cookies" ],
"ui": { "select_limit" : 1 },
"cookies": { "save_selected" : false }
};
$("#tree").jstree(options);
मुझे आसानी से चयन करने के लिए नोड नहीं मिल रहा है। मैंने प्रारंभिक रूप से चयन करने की कोशिश की लेकिन यह काम नहीं कर रहा है और यह आदर्श भी नहीं है क्योंकि मैं अक्सर प्रोग्रामिंग रूप से नोड का चयन करना चाहता हूं।
मैं उपयोग करने की कोशिश ...
$('#tree').jstree("select_node", '#ref565', true);
यह काम करता है अगर मैं एक हाइपरलिंक के माध्यम से फ़ंक्शन को कॉल करें लेकिन अगर मैं इसे कहते बाद मैं JStree initalise काम नहीं करता।
मैं एक चेतावनी (यह सब अजाक्स सफलता दिनचर्या में होता है) जोड़ने से देखें ...
$('#treeViewer').html(tree);
$("#tree").jstree(options);
alert('test');
$('#tree').jstree("select_node", '#ref565', true);
... कि पेड़ से पहले चेतावनी की शुरूआत गाया नहीं किया है।
मैं एक setTimeOut जोड़ा ...
$('#treeViewer').html(tree);
$("#tree").jstree(options);
setTimeout(function() {selectNode(565);},1250);
$('#tree').jstree("select_node", '#ref565', true);
... इस काम करता है।
मैं स्पष्ट रूप से बेवकूफ हूं। क्या मैं गलत वाक्यविन्यास का उपयोग कर रहा हूं? नोड का चयन करने के लिए मुझे देरी क्यों तय करनी पड़ेगी?
कृपया मदद करें।
यह मैं सिर्फ क्या चाहता था, लेकिन मैं कोड है कि साथ .bind कुछ Googling के बाद शुरू होता है की बहुत सारी देखते हैं। मैं गूंगा हूँ, इसका मतलब यह है कि मुझे लिखना चाहिए ... $ ('# पेड़')। Jstree.bind ("loaded.jstree", फ़ंक्शन (ईवेंट, डेटा) { $ ('# पेड़') .jstree ("select_node", '# ref565', सत्य); }); यदि ऐसा है, तो यह मेरे लिए काम नहीं कर रहा है। –
मैंने अपना उदाहरण अपडेट किया है कि आप एक ईवेंट को कैसे बाध्य करेंगे। अगर कोडिंग त्रुटि के कारण कुछ काम नहीं करता है, तो कृपया इसे समझने के लिए डीबगर का उपयोग करें। –
बहुत बहुत धन्यवाद। मुझे इन घटनाओं को समझना बहुत आसान लगता है, अब मुझे एहसास है कि वे पेड़ के तत्काल होने पर पूर्व-बाध्य हो सकते हैं। महान उदाहरण, चीयर्स :) –