मैं कैसे jQuery में दो बार चलने से फेसबुक कनेक्ट isUserConnected समारोह रोका जा सकता है?

वोट
0

मैं एक फेसबुक एकीकरण के साथ एक समस्या का एक सा मिल गया है।

मेरी उन एक लिंक पर क्लिक करते हैं, तो एक समारोह की जाँच करता है यदि कोई उपयोगकर्ता फेसबुक में लॉग इन किया है। वे लॉग इन नहीं कर रहे हैं, मैं डेटा का एक टुकड़ा निर्धारित करते हैं, और उसके बाद फेसबुक लॉगिन सामान चलाते हैं। जब फेसबुक रिटर्न है कि वे के लिए लॉग इन, मैं डेटा का टुकड़ा है कि जमा हो गया था की जाँच जाने के लिए और मूल कार्य वे चयनित चलाते हैं।

समस्या:

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

तो, मैं फेसबुक के लिए प्रतीक्षा नहीं करना चाहते हैं। वहाँ मेरे लिए किसी भी तरह से मेरी समारोह एक बार से अधिक कॉल करने से समारोह को रोकने के लिए है?

मैं कुछ है कि 'एक बार चलाने के' कहते हैं सेट कर सकते हैं? समस्या यह है कि एक बार यह एक बार चलाता है, उपयोगकर्ता फिर से क्लिक करता है तो मैं इसे फिर से चलाने की आवश्यकता होगी, तो मैं पूरी तरह से समारोह अक्षम नहीं कर सकता (है कि भले ही संभव थे)।

05/03/2009 को 05:53
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
1

यह सुंदर हैक-ish है, लेकिन यह चारों ओर फेसबुक के मुद्दे पर दो बार अपने फ़ंक्शन को कॉल मिलना चाहिए। कोई कोड है के बाद से, मैं अपने समाधान के उद्देश्य के लिए कुछ बनाने के लिए जा रहा हूँ। इसके अलावा, मैं फेसबुक लॉगइन कोड एक कॉलबैक है कि यह सोचते कर रहा हूँ (और कैसे यह आपके समारोह दो बार कॉल कर रहे हैं?)।

// This function is what is called when the link is clicked
// funToRun - the function that should be run after login is confirmed.
// params - parameters to pass to fToRun, as an array
clickWrapper = function(funToRun, params)
{
    // Keeps track of the state of the click
    var doFunction = true;

    var callback = function()
    {
        if (doFunction)
        {
            funToRun.apply(this, params);
            doFunction = false;
        }
    }

    // The facebook 
    facebookLogin(callback);
}

इस समाधान में, आप समारोह है कि आप एक कॉलबैक कि केवल एक बार चलाया जाएगा, के बाद से doFunction कुछ भी करने से भविष्य कॉलबैक कर पाएगा में चलाना चाहते हैं लपेटकर रहे हैं। हालांकि, यह कम से कम एक बार हर बार उपयोगकर्ता क्लिक करता है, के बाद से doFunction स्थानीय रूप से प्रबंधित किया जाता है चलेंगे (और इस प्रकार प्रत्येक क्लिक के लिए एक बार सच है)।

05/03/2009 को 06:24
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more