Jak lze zabránit funkci Facebook Connect isUserConnected spuštění dvakrát jQuery?

hlasů
0

Mám trochu problém s integrací Facebooku.

Když moji uživatelé kliknout na odkaz, funkce kontroluje, zda je uživatel přihlášen do Facebooku. V případě, že nejste přihlášeni, nastavení I kus dat, a pak spustit Facebook přihlašovací věci. Když Facebook vrátí, že se přihlásí, jdu zkontrolovat část dat, která byla uložena a spustit původní funkci, které vybrali.

Problém:

Funkci Facebook spustí dvakrát. Tam jsou některé připomínky k jejich vývěsky o tomto problému, ale zdá se, to byl problém od začátku připojení, a není určeno.

Takže nechci čekat na Facebooku. Existuje nějaký způsob, jak pro mě, aby se zabránilo funkci od volá mé funkce více než jednou?

Mohu něco, co říká ‚run once‘ nastavit? Problém je, že jakmile se spustí jednou, v případě, že uživatel klikne znovu, budu muset znovu spustit, takže nemohu úplně zakázat funkci (i kdyby to bylo možné).

Položena 05/03/2009 v 05:53
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
1

To je docela hack-ish, ale to by mělo dostat kolem otázka Facebook volá váš funkci dvakrát. Vzhledem k tomu není žádný kód, budu dělat některé až pro účely mé řešení. Také já jsem za předpokladu, že se facebook login kód má zpětné volání (jak jinak by mělo být volání svoji funkci dvakrát?).

// 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);
}

V tomto řešení, budete balení na funkci, kterou chcete spustit v zpětné volání, který bude spuštěn pouze jednou, protože doFunction bude předcházet budoucím zpětná volání z něco dělat. Nicméně, bude to běžet minimálně jednou za čas, kdy uživatel klikne, protože doFunction je řízena lokálně (a tedy platí jednou za každé kliknutí).

Odpovězeno 05/03/2009 v 06:24
zdroj uživatelem

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