Autor Zpráva
vuuul
Profil
Zdravím,

snažím se pracovat s AJAXem pomoví Jquery, ale nemůžu docílit toho, abych proměnnou, do které nahraju soubor data.txt pomocí $.get mohl používat i mimo funkci, kde jí nahraji.
<script>
var promenna;

$(document).ready(function()
{
$.get('data.txt', function(data) {
    promenna=data;
  });
kontrola()
})

function kontrola()
{
alert(promenna) //zde dojde k vypsání "undefined"
setTimeout("kontrola()",10000)
}
</script>
Konkrétně nemůžu přijít na to, jak proměnnou z function(data) dostat do funkce kontrola().
Předem děkuji za radu.
Someone
Profil
Co takhle:

$(document).ready(function()
{
$.get('data.txt', function(data) {
    kontrola(data);
  });
kontrola()
})

function kontrola(data) {
  alert(data);
}
vuuul
Profil
Kdyby mi šlo pouze o alert, tak to udělám rovnou takhle:
$(document).ready(function()
{
$.get('data.txt', function(data) {
    alert(data);
  });
})
ale já potřebuji dostat tu funkci kontrola() do smyčky (setTimeout("kontrola()",10000)), což se mi nepodařilo ani tímto způsobem.


tak nakonec jsem to vyresil takhle:

$(document).ready(function()
{
$.get('data.txt', function(data) {
    kontrola(data);
  });
})
 
function kontrola(dat) {
puvodni=dat
alert(puvodni)
setTimeout("kontrola(puvodni)",1000)
}
diky za radu.
Chamurappi
Profil
Reaguji na vuuula:
Proč se kvůli takové drobnosti, jako je AJAX, upínáš k jQuery? $.get funguje prakticky stejně jako ta moje funkce, s jejímž pochopením jsi zápasil.
vuuul
Profil
Chamurappi:
Protože mi připadá jednodušší napsat jeden řádek, navíc jsem se na základy jQuery chtěl stejně podívat. Má to nějaké nevýhody oproti zápisu bez jQuery?
Chamurappi
Profil
Reaguji na vuuula:
Má to nějaké nevýhody oproti zápisu bez jQuery?
Je to zbytečně větší o necelé jedno jQuery.

Protože mi připadá jednodušší napsat jeden řádek
Který jeden řádek máš na mysli? Tenhle?
nacti("data.txt", function(data)
{
  kontrola(data);
});
Nebo tenhle?
$(document).ready(function()
{
$.get('data.txt', function(data) {
    kontrola(data);
  });
})
vuuul
Profil
Chamurappi:
Poté, co jsem se podíval no to, co jQuery jednoduše umí ho použiji i na jiné věci. Navíc pomocí $(document).ready se mi podařilo konečně jednoduše docílit toho, že se funkce kontrola() proběhne až po úplném načtení stránky, což jsem předtím také ošetřoval.
pcmanik
Profil
vuuul:
A na to čo si ošetroval ti nestačí window.onload?
vuuul
Profil
pcmanik:
window.onload mi funkci provedl ještě před úplným načtením stránky

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: