Sunday, 15 May 2011

jquery - JavaScript: Variable Value gets lost between functions -


मेरे पास निम्न कोड है

  function updateSliderContent (json) {// & lt; - यहां परिभाषित जेसन सही है screen_order = json.screen_order.split ('_'); JQuery.each (स्क्रीन_डर, फ़ंक्शन (i, आइटम) {var screen_id = item; // इस बिंदु पर ऐसा नहीं है, इस प्रकार फ़ंक्शन, यदि ब्लॉक में है, तो कार्यान्वित नहीं होता है यदि (json [screen_id] .action == ' जोड़ ') {// doSomething} और अगर (json [screen_id] .action ==' निकालें ') {// doSomthingElse};}}  

मेरी समस्या यह है कि किसी भी तरह से, मान Json के (जो कि एक एजेएक्स कॉल से एक ऑब्जेक्ट है) jquery के प्रत्येक फ़ंक्शन में खो जाता है। मुझे अभी तक पता नहीं क्यों है, और न ही इसे कैसे हल करना है। Google मुझे इसका जवाब नहीं देता जो मैं ढूंढ रहा हूं।

संपादित करें 1

यह वास्तविक कॉल है।

  फ़ंक्शन अद्यतन स्लाइडर () {var स्क्रीन ऑर्डर = ''; jQuery ('div # slider td')। प्रत्येक (फ़ंक्शन (आई, आइटम) {स्क्रीन ऑर्डर + = यह.एबीबीआर + '_';}) var एजेक्सडेटा = {sid: sid, story: story, date: theDate, स्क्रीन ऑर्डरः स्क्रीन ऑडर, मोड: 'ajax_update_slider'}; jQuery । एजाक्स ({डेटा: एजेक्सडाटा, डेटाटाइप ई: 'जेसन', सफलता: फ़ंक्शन (जेएसएन) {अपडेटस्लाइडर कंटेंट (जेएसन); }}); TheDate = Math.round (नई तिथि)। GetTime () / 1000.0); // यूनिक्स टाइमस्टैम्प स्लाइडरटिमर = सेटटाइमआउट ('अपडेटस्लिडर ();', 15000); }; जेएस बिन पर आपकी समस्या को पुन: उत्पन्न करने के लिए मैंने कोशिश की और असफल हुए हैं:  

(संपादन योग्य)

आपके द्वारा दिखाया गया कोड अब तक बिल्कुल ठीक है, इसलिए समस्या आपके कोड या सिस्टम के कुछ अन्य भाग के कारण होनी चाहिए। हम सभी को सिर्फ अंधेरे में शूटिंग कर रहे हैं यदि हमें नहीं पता कि समस्या क्या है।

कृपया समस्या को पुन: उत्पन्न करने का प्रयास करें और हम वहां से आपकी सहायता कर सकते हैं।

पूर्ण स्रोत कोड

सूचकांक

  & lt;; doctype html & gt; & Lt; html lang = "en" & gt; & Lt; शीर्ष & gt; & Lt; मेटा http-equiv = "सामग्री-प्रकार" सामग्री = "पाठ / html; वर्णसेट = यूटीएफ -8" / & gt; & Lt; title & gt; http: //stackoverflow.com/questions/1831384/javascript-variable-value-gets-lost-between-functions< / title & gt; & Lt; स्क्रिप्ट प्रकार = "टेक्स्ट / जावास्क्रिप्ट" src = "http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js" & gt; & lt; / स्क्रिप्ट & gt; & Lt; स्क्रिप्ट प्रकार = "टेक्स्ट / जावास्क्रिप्ट" src = "http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" & gt; & lt; / स्क्रिप्ट & gt; & Lt; स्क्रिप्ट प्रकार = "टेक्स्ट / जावास्क्रिप्ट" & gt; $ .ajaxSetup ({url: 'test.json'}); फ़ंक्शन अपडेटः स्लाइडर कंटेंट (जेएसएन) {// & lt; - यहां परिभाषित जेसन सही है screen_order = json.screen_order.split ('_'); JQuery.each (स्क्रीन_डर, फ़ंक्शन (i, आइटम) {var screen_id = item; // इस बिंदु पर ऐसा नहीं है, इस प्रकार फ़ंक्शन, यदि ब्लॉक में है, तो कार्यान्वित नहीं होता है यदि (json [screen_id] .action == ' Add ') {console.log (screen_id,' action add ');} else if (json [screen_id] .action ==' remove ') {console.log (screen_id,' action remove ');};}); } फ़ंक्शन अपडेटस्लिडर () {var ajaxData = {}; JQuery.ajax ({डेटा: एजेक्सडेटा, डेटाप्रकार: 'जेसन', सफलता: फ़ंक्शन (जेएसएन) {अपडेटस्लाइडर कंटेंट (जेएसएन);}}); // theDate = Math.round (नई तिथि)। GetTime () / 1000.0); // यूनिक्स टाइमस्टैम्प स्लाइडरटिमर = सेटटाइमआउट ('अपडेटस्लिडर ();', 15000); }; $ (UpdateSlider); & Lt; / स्क्रिप्ट & gt; & Lt; / head & gt; & LT; बॉडी & gt; & Lt; / body & gt; & Lt; / html & gt;  

test.json

  {'screen_order': 'foo_bar_baz', 'foo': {'क्रिया': 'जोड़ें'}, 'बार' : {'क्रिया': 'जोड़ें'}, 'बाज़': {'कार्रवाई': 'हटायें'}}  

No comments:

Post a Comment