Wątek przeniesiony 2014-10-04 19:38 z Webmastering przez dzek69.

Jak dostać się do takiej zmiennej?

0

Witam

Mam taki mały problem z dostaniem się z zewnatrz do zmiennych ulokowanych w taki sposob?

<!DOCTYPE HTML>
<html>
<head>
</head>  
<body>
    <script>
    document.onload = (function(){
      // initial node data
      var zmienna = [{title: "produkt A", id: 0},
                   {title: "produkt B", id: 1},
                   {title: "produkt C", id: 2}
      ];
      var test = "abc";
    })();
    </script>

    <script>
    //miejsce dwa
        alert(document.test)
    </script>   
</body>  
</html>
0

na pewno nie dostaniesz się do zmiennej jeżeli wcześniej zdefiniowałeś ją jako zmienna lokalna (var).

miej też na uwadze, że skrypt pierwszy może wykonać się PÓŹNIEJ niż skrypt drugi, bo otoczyłeś go document.onload, a więc ten pierwszy wykonuje się po załadowaniu całego dokumentu dopiero (w teorii), a drugi wykonuje się natychmiast.

a eventy powinieneś dodawać przez addEventListener, a nie nadpisując obiektom funkcje on*

0

co do kolejności wywołania to jestem świadomy w zasadzie będę to wykonywał po kliknięciu na dany DIV ale bardziej chodzi mi o dostanie się do tego zbioru albo jak zmodyfikować ten kod by się dało?

Mam taka bibliotekę:

http://bl.ocks.org/cjrd/6863459

a sam przykład troche uprosciłem do celow pytania chce wyciagnac wlasnie takowe zmienne (nodes,edges) by je pozniej moc zapisac

0

Możesz np. użyć obiektu window (albo przypisać zmienną globalną, na jedno wychodzi), i zamiast var zmienna = , napisać window.zmienna =

Żeby nie używać zmiennej globalnej, mógłbyś też przenieść kod z alertem do środka funkcji

document.onload = (function(){
      // initial node data
      var zmienna = [{title: "produkt A", id: 0},
                   {title: "produkt B", id: 1},
                   {title: "produkt C", id: 2}
      ];
      var test = "abc";
      alert(test); // TUtaj, przenieslismy kod
    })();

a później włożyć to w dodatkowe funkcje:

function initialize(nodes) {
  // funkcja ktora sie odpali jak zostana zaladowane dane
}

document.onload = (function(){
      // initial node data
      var zmienna = [{title: "produkt A", id: 0},
                   {title: "produkt B", id: 1},
                   {title: "produkt C", id: 2}
      ];
      var test = "abc";
      initialize(zmienna); // wywolujemy funkcje inicjalizujaca
    })(initialize);// przekazujemy funkcje

dodanie znaczników <code class="javascript"> - @furious programming

1 użytkowników online, w tym zalogowanych: 0, gości: 1