Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Tworzenie divów z poziomu js
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Michu
Witam. Mój problem jest następujący:

Tworzę skrypt js+ajax+mootools który tworzyłby dynamiczną mapkę 2d do gry rpg (php+mysql). W mapce z założenia każdy gracz ma widzieć położenie innych, oraz ich ruchy. Przygotowałem już klasę obsługującą ruchy, itp. Dopiero teraz zacząłem się jednak zastanawiać co zrobić gdy gracz wkracza na mapkę po odświeżeniu strony. Każdy gracz ma swój obrazek zamknięty w <div id=''graczX"></div>. Czy da się stworzyć system który z poziomu js tworzy w HTML'u nowy div, który mógłby być potem obsługiwany?
l0ud
Tak, zainteresuj się document.createElement('div') później musisz tylko zrobić appendChild do dokumentu albo warstwy nadrzędnej, w której będzie się ów div miał znajdywać.

Mam nadzieję że to pomoże w poszukiwaniach przykładów, jak nie to napisz a postaram się to bardziej wyjaśnić. smile.gif
Michu
Oto co zrobiłem, niewiem dlaczego nie działa:

<html>
<head>
<script type="text/javascript" language="javascript">
function AddPlayerDiv(nazwa){
var znacznik = document.createElement('div');
znacznik.setAttribute('id', nazwa);
var NewDiv = document.getElementById(nazwa);
NewDiv.appendChild('players');
NewDiv.innerHTML = "<img src='chars/char1/s.gif'>";

}
AddPlayerDiv('char1');
</script>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<div id='players'>
</div>
</body>
</html>
nospor
Kod
1)var znacznik = document.createElement('div');
2)znacznik.setAttribute('id', nazwa);
3)var NewDiv = document.getElementById(nazwa);
4)NewDiv.appendChild('players');
5)NewDiv.innerHTML = "<img src='chars/char1/s.gif'>";
Moze ci przetlumacze to co napisales, bo chyba nie wiesz co napisales:
1) tworzysz diva
2) nadajesz mu id nazwa
3)pobierasz jakis element o id nazwa. napewno to ci nie zwroci diva ktorego co dopiero stworzyles. Jesli chciales wlasnie go pobrac to przeciez masz go w zmienej znacznik
4) do pobranego wczesniej diva (o ile wogole cos pobrales) dodajesz tekst "players" - tak sie nie dodaje tekstow
5) nadpisujesz to co niby wyzej dodales poprzez przypisanie innerHTML.

A teraz zastanow sie czy chciales napewno to osiagnac smile.gif

ps: czemu to jest w dziale xml,ajax? przeciez to zwykly js
Sabistik
Przenoszę na forum JS.
slammer
Przynajmniej się starasz smile.gif
zamiast
  1. znacznik.setAttribute('id', nazwa);

  1. znacznik.id = "nazwa";


  1. <div id="player"></div>
  2. var znacznik = document.createElement('div'); //tworzysz diva
  3. znacznik.id = "nazwa"; // nadajesz mu id
  4. znacznik.innerHTML = 'jakis tekst'; //wpisujesz do niego tekst (alternatywnie mozna uzyc createTextNode)
  5. var NewDiv = document.getElementById("player"); //teraz pobierasz referencje do elementu o id "player" a nie zawartosci zmiennej player
  6. NewDiv.appendChild(znacznik); //teraz do pobranej referencji (uchwytu jak wolisz) dodajesz wszystko co utworzyles wczesniej
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.