2015-09-15 7 views
5

मेरे पास jstree प्लगइन है मैं बस इस प्लगइन को चयनित नोड द्वारा भरता हूं और नोड-चयन विधि में AJAX के साथ डेटा पोस्ट करता हूं। Althouh मैं "letChangeTrig" के साथ एक नियंत्रण कर इसे खुद onChamge विधि कॉल रिकर्सिवली की वजह से मैं पेड़ refrest .. लेकिन मैं जब उपयोगकर्ता का चयन केवल इस कॉल करना चाहते हैं ..बंद करें jquery चालू करें पुनर्नवीनीकरण पुनरावृत्ति

$('#tree_2').jstree({    
}).on('changed.jstree', function (e, datap) { 
    debugger 
    if(!letChangeTrig) 
    { 
     letChangeTrig = true; 
     return; 
    } 

    $.ajax({ 
     url: "../../Controller/ActiveDirectoryController.php5", 
     type: "POST", 
     dataType: "json", 
     data: params, 
     success: function (result) { 
      treeData_ = prepareObjectsforTree(result.Objects); 
      resfreshJSTree(treeData_);    
     }, 
     error: function (a, b, c) { 

     } 
    }); 
}); 

ताज़ा:

function resfreshJSTree(treeDataa) { 
    letChangeTrig = false; 
    $('#tree_2').jstree(true).settings.core.data = treeDataa; 
    $('#tree_2').jstree(true).refresh(); 

} 

और यह मेरा जेएसटी रीफ्रेश फ़ंक्शन है जो ऑन चेंज विधि को ट्रिगर करता है .. और डेटा पोस्ट करता है .. सफलता के बाद प्रतिक्रिया के बाद मैं इसे फिर से बदलकर डेटा के साथ पेड़ को पुनर्निर्मित करने के लिए कहता हूं लेकिन इस तरह से यह बिना किसी उपयोगकर्ता के evet का चयन करता है लूप में गिरें .. मुझे इसे तार्किक नियंत्रण से रोकना होगा

उत्तर

4

क्या आपने jQuery event.stopPropagation() विधि की कोशिश की है? यह किसी भी अभिभावक ईवेंट हैंडलर को निष्पादित होने से रोकते हुए, किसी तत्व की मूलभूत तत्वों पर बुलबुला रोकता है।

+1

आपका ईवेंट ऑब्जेक्ट ई कॉलबैक फ़ंक्शन में पास किया गया है। E.stopPropagation() – user888734

+0

आज़माएं ठीक है अब मैं देखता हूं, धन्यवाद –

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