2012-04-03 25 views
5

मुझे संदेह है कि यह निश्चित रूप से पूरा करना आसान है लेकिन मुझे यह नहीं पता कि यह कैसे किया जाए। क्या पूरे पृष्ठ को रीफ्रेश किए बिना JQuery प्लगइन को फिर से लोड करना संभव है ताकि यह इसके मानों को रीफ्रेश कर सके? मैंने इसी तरह के प्रश्न पढ़े हैं लेकिन वे विशिष्ट प्लगिंग के लिए लक्षित हैं! मैं जानना चाहता हूं कि कोई इसे पूरा करने के लिए "सामान्य" तरीका जानता है, इसलिए इसका उपयोग कई जेक्यू प्लगइन में किया जा सकता है। वहाँ यह निश्चित रूप से इसके लिए कोई तरीका होना चाहिए ...किसी JQuery प्लगइन को इसके मूल्यों को रीफ्रेश करने के लिए पुनः लोड/पुनः लोड/अपडेट किया जा सकता है?

इस वैसे भी, और अधिक विशेष रूप से, मैं इस सवाल पूछ रहा हूँ JQuery File Tree फिर से लोड करने मुझे मिल गया है:

JAVASCRIPT

$(document).ready(function() { 
    $('#fileTree').fileTree({ 
     root: '/some/path/to/somewhere/', 
     script: 'js/jqueryFileTree-1.01/connectors/jqueryFileTree.php', 
     folderEvent: 'click', 
     expandSpeed: 1000, 
     collapseSpeed: 1000, 
     multiFolder: false, 
     loadMessage: 'Loading...' 
     }, function(file) { 
      relativePath=file.replace("/some/path",""); 
      aFunction(relativePath, file); 
     }); 
    }); 

एचटीएमएल

<div id="fileTree" class="fileTree"></div> 

एक निश्चित अंक पर टी, मुझे AJAX + PHP कोड मिला है जो मुझे चयनित फ़ाइल को हटा दें। यह अच्छी तरह से काम करता है! लेकिन हटाई गई फ़ाइल को अभी भी फ़ाइल पेड़ में दिखाया गया है। अगर मैं उस समारोह में अपनी सफलता घटना में window.location.reload() जोड़ता हूं, तो जाहिर है कि पूरा पृष्ठ इसे पुनः लोड किया गया है और मेरा पेड़ फ़ोल्डर में वास्तविक फ़ाइलों को लक्षित करता है।

प्रश्न: क्या पूरे पृष्ठ को रीफ्रेश किए बिना इसे पुनः लोड करने का कोई तरीका है ???

कृपया इस प्लगइन के लेखक ध्यान दें ट्विटर पर मुझे बताया गया है:

@metafaniel समस्या यह अब हमारी परियोजनाओं में से किसी में प्रयोग किया जाता है है। यह पुरानी, ​​पुरानी लिपि है जिसे ओवरहाल की आवश्यकता है। @abeautifulsite

@metafaniel के माध्यम से आपको इसे स्वयं जोड़ना होगा। चूंकि प्लगइन बहुत पुराना है, इसमें पूर्ण API नहीं है। @abeautifulsite

मेरे पास एक और प्लगइन के साथ अपना कोड लिखने के लिए कार्यालय में अधिक समय नहीं है, मुझे इसे खत्म करना होगा! कोई विचार? कृपया मेरी मदद करें, धन्यवाद =)

+0

आमतौर पर, आप प्लगइन को फिर से रीसेट/पुनः लोड करने के लिए उसी पैरामीटर के साथ कॉल कर सकते हैं। – Blazemonger

+0

अभिभावक 'div' (' # fileTree') खाली करें और प्लगइन को फिर से कॉल करें – js1568

+1

ठीक है, कोर्स का हाँ दोनों के लिए धन्यवाद। हाँ, यह एक तरीका है जो मैंने पहले किया था, लेकिन दूसरा तरीका होना चाहिए ... मुझे जेएस फ़ाइल में जावास्क्रिप्ट कोड मिला है ... हो सकता है कि कुछ कोड केवल .js कोड को चलाने के लिए करें ?? क्या आपको ऐसा करने का कोई तरीका पता है? आपकी मदद के लिए धन्यवाद =) – Metafaniel

उत्तर

0

ठीक है, अगर ओपी ऐसा करने के लिए प्रत्यक्ष प्लगइन कमांड मांग रहा है, तो मुझे डर है कि यह अस्तित्व में नहीं हो सकता है। यहां मेरा समाधान है, जो बहुत अच्छी तरह से काम करता है।

<div id="file-tree-holder"> 
    <div id="jstree" ></div> 
</div> 

फिर, अपने जावास्क्रिप्ट में, बस से पहले आप अपने प्लगइन का दृष्टांत, आप माता पिता div की सामग्री को साफ़ करें, और उसके बाद: तुम क्या एक माता पिता div में अपने खाली <div id="jstree"></div> लपेट, कुछ इस तरह है पैरेंट div के भीतर लक्ष्य div को फिर से लिखें, जैसे:

 $('#file-tree-holder').html(''); 
     $('#file-tree-holder').html('<div id="jstree" ></div>'); 
     $('#jstree').fileTree({ 
      script: '/ajax/file_tree2/' + path, 
      multiFolder: true, 
      expandSpeed: 250, 
      collapseSpeed: 250, 
      loadMessage: 'Loading...' 
     }); 

... और यह बहुत अच्छी तरह से काम करता है।